私信  •  关注

scaisEdge

scaisEdge 最近创建的主题
scaisEdge 最近回复了
3 年前
回复了 scaisEdge 创建的主题 » MySQL或MariaDB将单行中的日期范围扩展为多个系列行

你可以在同一张桌子上使用一个工会

    select id, timeoff_begin timeoff, concat(id, ' begin date') msg
    from TIMEOFF_INFO
    union all 
    select id, timeoff_end, concat(id, ' end date') 
    from TIMEOFF_INFO
    order by id, timeoff
5 年前
回复了 scaisEdge 创建的主题 » SQL小提琴MySQL 5.6与MS SQL Server 2017 -简单的创建和插入

您应该使用单引号(sqlserver中的双引号表示列名)

  insert into test (col_1, col_2)
  values ('A', 3),
        ('B', 7),
        ('A', 1),
        ('B', 2);
6 年前
回复了 scaisEdge 创建的主题 » mysql-仅对连接的行应用限制

应该对子查询使用内部联接,而不是左联接和in子句

SELECT users.id, users.name, t.id
FROM users
INNER JOIN (
SELECT posts.id, posts.user_id
FROM posts 
WHERE posts.user_id = users.id
ORDER BY posts.featured DESC 
LIMIT 10 ) t on t.user_id  = users.id

这样,就不会在in子句中对子查询使用限制,也不会引发错误。两者的错误 LIMIT & IN .... 但不适用于join子查询中的in limit的sue(withou in子句)

6 年前
回复了 scaisEdge 创建的主题 » mysql中类操作的索引

mysql索引字符串的左侧。

如果查询右侧使用通配符,则字符串列可以使用索引:

 SELECT * FROM your_table WHERE field LIKE "text%" # can use an index

但请记住,索引有767字节的限制

来自mysql文档

B树索引可用于表达式中的列比较 使用=、>、>=、<、<=,或在运算符之间使用。索引也可以是 如果like的参数是常量字符串,则用于like比较 不是以通配符开头的。

https://dev.mysql.com/doc/refman/8.0/en/index-btree-hash.html

6 年前
回复了 scaisEdge 创建的主题 » mysql-发布select和group by

从mysql 5.7开始,可以使用select中不涉及aggregation函数的列和group by子句中没有提到的列,因此不应该对column使用*(all),而应该在select中添加explict column name,并在groupby中提到select中不涉及aggregation函数的列。

    SELECT `pages_tags`.`pages_id`, GROUP_CONCAT('tags_name')
    FROM `pages` 
    LEFT JOIN `pages_tags` ON `pages_tags`.`pages_id` = `pages`.`pages_id` 
    LEFT JOIN `tags` ON `tags`.`tags_id` = `pages_tags`.`tags_id` 
    GROUP BY `pages_tags`.`pages_id`
5 年前
回复了 scaisEdge 创建的主题 » 从mysql数据库的两列之和计算pecent值

似乎你需要数字格式和适当的 <br />

while($row = mysqli_fetch_row($result)) {
      foreach($row as $cell) {
          echo umber_format($cell, 2, '.', ',')."<br>";
      }
}

间隙与列ID的内容无关。您应该尝试在表中添加复合冗余索引

 create index  idx1 on my_table(name, id) 

可能间隙与缓存值有关。尝试在单独的会话中执行查询。

6 年前
回复了 scaisEdge 创建的主题 » 在php中无法将json数据插入mysql数据库

似乎你没有一个合适的主键。

尝试在demo_表中创建一个基于auto increment列的正确主键

基于架构添加自动增量

CREATE TABLE `demo_table` (
  `id` int(5) NOT NULL  AUTO_INCREMENT,
  `data` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

在这一行中,插入的每一行都有一个自动的不同主键。否则,第一次插入将创建id=0,第二次尝试执行相同的操作..但0已存在

5 年前
回复了 scaisEdge 创建的主题 » MySQL:如何计算结果在select中的位置?[副本]

您可以尝试在playerid=1的点上计算点为>=的行数。

select count(*)  from (
  SELECT PLAYERID
      , SUM(POINTS) AS POINTS 
  FROM TABLE1 
  GROUP BY PLAYERID 
) T 
WHERE T.POINT >= (
  SELECT SUM(POINTS) 
  FROM TABLE1 
  WHERE PLAYERID = 1
)
6 年前
回复了 scaisEdge 创建的主题 » 多栏mysql索引

在这种情况下,您可以尝试使用两个单列索引。

create index ani_idx1 on call_data_report(ANI);

create index ani_idx2 on call_data_report(DNIS); 

因为使用复合索引的第二个键 DNIS 未使用..