Mysql错误重复结果

时间:2013-11-17 10:14:56

标签: php mysql

我写了一个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

任何帮助都将不胜感激。

2 个答案:

答案 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.'%"'

还有另一个问题,即“和”条件和“或”条件的错误匹配。