2013-05-12 140 views
0

假设我有一列包含一些字符串。我需要的是获取用户输入,并在包含用户输入文本的行上执行sql select语句。举一个例子可以说我有一个名为“饮料”的专栏。其中一行在饮料栏内有“茶”+“咖啡”。现在,如果用户输入茶或咖啡,我需要返回该行。执行此操作的最佳方式是什么?在SQL中执行包含select语句

id ingredients drinks 
    1 milk,sugar tea+coffee 
+0

您能以表格形式先给样品记录吗? – 2013-05-12 10:08:03

+0

增加了一个样本记录 – user1667307 2013-05-12 10:09:44

+0

您的数据库未规范化。 – 2013-05-12 10:09:58

回答

1

如果你需要搜索的时间内,你可以使用这样的事情:

SELECT * 
FROM yourtable 
WHERE 
    FIND_IN_SET('tea', REPLACE(drinks, '+', ',')) 

,或者如果你已经知道饮料的号码进行搜索,你可以添加一些附加条件:

WHERE 
    FIND_IN_SET('tea', REPLACE(drinks, '+', ',')) OR 
    FIND_IN_SET('coffee', REPLACE(drinks, '+', ',')) 
+0

添加另一个检查咖啡的find_in_set。 – 2013-05-12 10:11:57

+0

@JW웃我不确定OP是否只想在一次或多次搜索一个术语......但我编辑了我的答案! TNX! – fthiella 2013-05-12 10:15:56

+0

这是有效的。非常感谢 – user1667307 2013-05-12 10:27:21