为什么OR在哪里条件不适用于mysql
这是查询:
select CONCAT(D.did, ',', 'tbl_doctors') AS ID ,D.name,(S.name) As spname, D.addr
FROM medicaldoctor.tbl_doctors D
LEFT JOIN medicaldoctor.tbl_my_special M ON D.did = M.did
LEFT JOIN medicaladmin.tbl_specialization S ON M.sid = S.id
WHERE (D.addr LIKE '%Pune%' AND D.addr LIKE '%kothrud%')
AND (S.name LIKE "%a%" OR D.name LIKE "%a%")
group by D.addr
答案 0 :(得分:0)
您的查询按编码工作。
nullptr
分组可以自由选择2名医生中的任何一名和2名专家中的任何一名,这是预期的和记录的行为https://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html - 如果ONLY_FULL_GROUP_BY被禁用,那么MySQL的扩展名为GROUP BY的标准SQL使用允许选择列表,HAVING条件或ORDER BY列表引用非聚合列,即使列在功能上不依赖于GROUP BY列。这导致MySQL接受前面的查询。在这种情况下,服务器可以自由选择每个组中的任何值,因此除非它们相同,否则所选的值是不确定的,这可能不是您想要的。