如果用户存在于列数组中,则获取行ID

时间:2014-12-23 10:33:04

标签: php mysql

我有一个包含3列的表

id   user   food

1    Sam    Apple, Banana, Orange

2    Beni    Apple, Jam, Orange

3    Nancy    Apple, Banana, Orange

在“食物”栏中,香蕉存在于第1行和第3行。如何在食物栏中的食物(香蕉)相同时获取行号。

谢谢!

2 个答案:

答案 0 :(得分:1)

使用以下查询

SELECT id FROM DATABASE_NAME 
WHERE food="Banana";

答案 1 :(得分:0)

在最基本的级别,您可以使用LIKE

SELECT id FROM DATABASE_NAME WHERE food LIKE "%Banana%";

但这不会阻止像Apple,Banana cake,Orange"而是出现了。您应该考虑将食物存放在不同的表中并改为创建JOIN。

TABLE用户:

id   user
1    Sam
2    Beni
3    Nancy

TABLE userfood:

id      userid      food
1       1           Apple
2       1           Banana
3       1           Orange
4       2           Apple
5       2           Jam
6       2           Orange
7       3           Apple
8       3           Banana
9       3           Orange

现在我们可以创建一个更好的查询:

SELECT user.id
FROM user
JOIN userfood ON userfood.userid = user.id
WHERE food = 'Banana'

现在您已拥有用户ID,并且可以轻松(并且可靠地)搜索您想要的任何食物。