0

在我的数据库表中,我有三个字段。假设字段名称是 name、age 和 favorite_numbers。

现在,我的数据库的内容如下:

  1. Anna 15 岁,她最喜欢的数字是“14,21,16”
  2. 杰西卡 20 岁,她最喜欢的数字是“21,30,20”
  3. Sara 30 岁,她最喜欢的数字是“50,45,21”
  4. Jessa 12 岁,她最喜欢的数字是“10,12,20”
  5. Farrah 19 岁,她最喜欢的数字是“6,12,20”

如何制定我的查询以查看最喜欢数字为 21 的人的姓名?

在上面的内容中,我只想显示 Anna、Jessica 和 Sara 的名字,因为他们三个人最喜欢的数字是 21。

4

2 回答 2

3

看看使用FIND_IN_SET(str,strlist)

如果字符串 str 在由 N 个子字符串组成的字符串列表 strlist 中,则返回 1 到 N 范围内的值。字符串列表是由以“,”字符分隔的子字符串组成的字符串。如果第一个参数是一个常量字符串,而第二个参数是一个 SET 类型的列,则 FIND_IN_SET() 函数被优化为使用位算术。如果 str 不在 strlist 中或 strlist 是空字符串,则返回 0。如果任一参数为 NULL,则返回 NULL。

SQL 小提琴演示

请注意,使用

WHERE nums LIKE '%21%'

将不起作用,因为这也将包括 211 和 121

于 2013-10-26T04:02:57.927 回答
0

试试这个查询:
我想你的表名是user(你没有给出表名)。

SELECT * FROM user WHERE favorite_numbers like '%21%'
于 2013-10-26T04:02:48.140 回答