作者LoserOfLove (LOL)
看板Database
标题[SQL ] NOT关键字
时间Mon Nov 16 10:12:07 2015
资料库名称:mysql
资料库版本:5.6.27
内容/问题描述:
想请问关於"NOT"关键字的用法,下面这个sql是可以执行的。
SELECT s.供应商代号, s.供应商名称
FROM 供应商 s
WHERE EXISTS
(
SELECT *
FROM 零件 c, 专案供应零件 jc
WHERE c.颜色='黑' AND s.供应商代号=jc.供应商代号 AND c.零件代号=jc.零件代号
)
但是只要在"WHERE"与"EXISTS"之间加上"NOT"
就会得到以下的错误讯息:
错误 静态分析: 分析过程中发生 3 个错误。
无法辨识的关键字。 (near "NOT" at position 43)
无法辨识的关键字。 (near "EXISTS" at position 47)
预期之外的符号。 (near "(" at position 55)
SQL 查询:
SELECT s.供应商代号, s.供应商名称 FROM 供应商 s WHERE NOT EXISTS ( LIMIT 0, 25
MySQL 回应:
#1064 - You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version
for the right syntax to use near 'LIMIT 0, 25' at line 4
为什麽不能用NOT关键字呢?
是新版的mysql有更改什麽规则吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 101.15.160.219
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1447639929.A.845.html
1F:→ a926: 记得原本就不能加NOT了,你可以改写成NOT IN 11/16 11:07
2F:→ a926: e.g. WHERE s.供应商代号 NOT IN (SELECT s.供应商代号 11/16 11:08
3F:→ a926: 阿 我笔误了 可以用NOT没错,不过你改用NOT IN可以吗? 11/16 11:09
4F:→ a926: 你的错误讯息上有用到LIMIT 如果拿掉呢? 11/16 11:12
5F:→ LoserOfLove: 我发现好像是phpmyadmin的问题,我用terminal执行 11/16 12:57
6F:→ LoserOfLove: 上面的sql是可以的,不知phpmyadmin是什麽bug 11/16 12:57
7F:→ LoserOfLove: 之前的版本没遇过这样的问题 11/16 12:57