0

这是我第一次尝试实现这种选择。

我的表上有一个列,用于存储诸如1,3,45,32,47,4,9,100,23,2

我想创建一个select并仅检索匹配的值,例如4not 45在表的所有行上。

有时此列只有一个数字,例如4

如果我LIKE %4,%只使用 SQL 进行选择,将检索第一个示例的值,并且只有一个数字的记录不会出现。

如果我使用LIKE %4%SQL 将检索4, 45, 47

如果我使用 REGEX '^4$'SQL 只会4从两个示例中检索...

有什么帮助吗?

PS:对不起我的英语我来自巴西!

4

4 回答 4

0

您可以在 where 子句中使用 = 运算符

Select some-col 
from some_table 
where column_name = '4'
于 2012-05-31T01:28:37.627 回答
0

将值存储为:,1,3,45,32,47,4,9,100,23,2,

然后做 SQL LIKE %,4,%

于 2012-05-31T01:29:09.957 回答
0
where find_in_set('4', col_name)

http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_find-in-set

ps-考虑改变你的数据库设计,这样你就不需要使用这些黑客来查询你的数据库。

于 2012-05-31T02:24:08.727 回答
0
  1. 我的表上有一个列,用于存储诸如1,3,45,32,47,4,9,100,23,2
  2. 我想进行选择并仅检索匹配的值,例如4

更改 where 子句,如下所示:

where column_name like '4' or column_name like '4,%' or column_name like '%,4,%'

它应该可以工作。

于 2012-05-31T02:24:22.450 回答