在編寫查詢時, 我在給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