同步发布:Hedon丨MySQL丨语法丨(五)SQL 易错点 (排版更佳!)
使用 COUNT(*) 判断是否存在符合条件的数据。❌
效率低,每次都要扫描全表。
应该用:SELECT … LIMIT 1
LIMIT 只要找到符合条数的数据后就会立刻返回。
在执行一个更新语句后,使用查询方式判断此更新语句是否有执行成功。❌
使用 ROW_COUNT() 函数判断修改行数会更好。
视图在 ON 条件中过滤不满足条件的记录。❌
都用 WHERE 来过滤比较好。
ON 过滤的话有时候是失败的。(LEFT JOIN 会保留左表的所有数据,不存在就置为 NULL)
在使用 IN 进行子查询的判断时,在列中为指定正确的表名,如 SELECT A1 FROM A WHERE A1 IN (SELECT A1 FROM B)
。这时尽管 B 中并不存在 A1 列,数据库也不会报错,而是会列出 A 表中的所有数据。 ❌
使用 JOIN 关联代替子查询。
对于表中定义的具有 NOT NULL 和 DEFAULT 值的列,在插入数据时直接插入 NULL 值。❌