2014-09-04 146 views
0

你好我对sql很好,所以我需要你的帮助。在同一字段中选择具有不同值的行

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

表:

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查询:

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 

任何想法?

谢谢。

+0

为什么你不希望第5行一个和两个? – fthiella 2014-09-04 09:36:02

+0

@fthiella因为我想用'one'和'two'过滤记录。 – 2014-09-04 09:38:04

回答

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%') 
+0

感谢您的支持。 – 2014-09-04 09:56:50

1

你必须使用

OR或||

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

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

由于SIXTYONE包含“一个”字。如果你正在寻找,请使用LIKE作为你的帖子。否则你应该使用=(等于)来得到确切的结果。谁只有标题“一”。你可以试试吗?

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

这不提供问题的答案。要批评或要求作者澄清,请在其帖子下方留言。 – Smar 2014-09-04 10:12:24

+0

@Smar你在说这是错误的答案? – 2014-09-04 10:15:27

+0

你应该解释你的答案修正了什么,而不是只包含代码。不鼓励使用纯代码的答案,因为它们不能完全帮助未来的读者(也不是askee),并且容易被删除。 – Smar 2014-09-04 10:16:56

0

既然你已经有了固定的标题,你的错误是标题不能像在同一时间:)

相关问题