我写了一个mysql查询并得到了两次相同的结果。现在我无法解决问题。谁能帮帮我吗。
SELECT first_name , second_name
FROM profile_doctors_main , category
WHERE (first_name LIKE "%'.(string)$name.'%" OR second_name LIKE "%'.$name.'%")
AND category_name LIKE "%'.$category.'%" AND city LIKE "%'.$city.'%"
结果= Sharon Zing
任何帮助都将不胜感激。
答案 0 :(得分:2)
SELECT
profile_doctors_main.first_name sfname,
profile_doctors_main.second_name slname,
category.first_name fname,
category.second_name lname
FROM
profile_doctors_main,
category
WHERE (
profile_doctors_main.first_name LIKE "%'.(string)$name.'%" AND category.first_name LIKE "%'.(string)$name.'%"
OR profile_doctors_main.second_name LIKE "%'.$name.'%" AND category.second_name LIKE "%'.$name.'%"
)
AND category_name LIKE "%'.$category.'%"
AND city LIKE "%'.$city.'%"
答案 1 :(得分:1)
当您需要查询多个表中的数据时,您应该使用短语“JOIN”,并在必要时为该表添加别名。
当您使用“JOIN”时,您应该添加“ON”条件,它会执行“where”之类的操作,以删除重复的结果。
尝试下面的sql(因为我不知道表字段,它只是一个示例)
'SELECT first_name , second_name FROM profile_doctors_main , category
on profile_doctors_main.xxx = category.xxx
WHERE (profile_doctors_main.first_name LIKE "%'.(string)$name.'%"
OR profile_doctors_main.second_name LIKE "%'.$name.'%")
AND category.category_name LIKE "%'.$category.'%"
AND profile_doctors_main.city LIKE "%'.$city.'%"'
还有另一个问题,即“和”条件和“或”条件的错误匹配。