在编写查询时, 我在给where条款中的teacher
,然后执行coteacher
, 它不显示任何记录。当我反转这个命令(第一次写coteacher,然后是老师)时,它列出了这两个记录。MySQL混淆查询
列role_name没有索引,表引擎是INNODB。 这是为什么?
SELECT *
FROM role
WHERE role.role_name = 'coteacher'
OR role.role_name = 'teacher'
在编写查询时, 我在给where条款中的teacher
,然后执行coteacher
, 它不显示任何记录。当我反转这个命令(第一次写coteacher,然后是老师)时,它列出了这两个记录。MySQL混淆查询
列role_name没有索引,表引擎是INNODB。 这是为什么?
SELECT *
FROM role
WHERE role.role_name = 'coteacher'
OR role.role_name = 'teacher'
我不完全得到的问题,而是你有没有试过这样:
SELECT *
FROM role
WHERE role.role_name IN ('coteacher', 'teacher')
?
是的!我试过了,它只返回一个记录教师 – 2014-10-27 05:14:49
你尝试下面的查询:
SELECT * FROM role WHERE (role.role_name = 'coteacher' OR role.role_name = 'teacher')
您的解决方案与作者提供的查询完全相同......圆括号在这里没用。 – 2014-09-25 11:46:58
我不能复制这种行为...... http://www.sqlfiddle.com/#!2/25ac3/1 – Strawberry 2014-09-25 11:29:46
请出示代码的确切位这是行不通的(IE不是上面的工作)。 – Giles 2014-09-25 11:33:27
我会尝试从角色中选择不同的role_name来查看实际可用的值。这可能是一个大小写敏感的问题吗? – DRapp 2014-09-25 11:43:09