在同一字段中选择具有不同值的行

时间:2014-09-04 09:29:58

标签: mysql sql

你好,我对sql很好,所以我需要你的帮助。

我有一个名为property的表。现在我想在同一个字段中检索具有不同值的行。我尝试了 LIKE AND 但没有得到任何结果。

表格

id    user_id   title    approved
--    -------   -----    --------
1     60        one      1 
2     60        one      1
3     60        one      1
4     60        two      1
5     60        three    1

SQL QUERY:

SELECT *
FROM `property`
WHERE `user_id` =60
AND `approved` =1
AND `title` like '%one%'
AND `title` like '%two%'

我想要这个结果:

id    user_id   title    approved
--    -------   -----    --------
1     60        one      1 
2     60        one      1
3     60        one      1
4     60        two      1

任何想法?

感谢。

3 个答案:

答案 0 :(得分:2)

使用title like '%one%' AND title like '%two%',您会找到一个“一”和“两”的标题。而你想要一些“一”或“两个”

SELECT *
FROM `property`
WHERE `user_id` =60
AND `approved` =1
AND (`title` like '%one%' OR `title` like '%two%')

答案 1 :(得分:1)

你必须使用

  

OR或||

条件。您正在使用LIKE条件来检索结果。

这将检索如果标题也有SIXTYONE。

因为SIXTYONE包含“ONE”字样。如果您正在寻找,请使用LIKE作为您提到的帖子。否则你应该使用=(等于)来得到确切的结果。谁只有头衔“ONE”。你能试试吗?

SELECT *
FROM `property`
WHERE `user_id` =60
AND `approved` =1
AND (`title`='one' || `title`='two')

答案 2 :(得分:0)

SELECT *
FROM property
WHERE user_id =60
AND approved =1
AND title in('one', 'two')

因为你已经有固定的标题,你的错误是标题不能同时一两个:)