1

表 productinfo 中字段数据的我的数据库条目是这样的,例如:

66523,665893,745896321

现在我想要一个SELECT给我洞入口的声明:

例如:

SELECT * from productinfo WHERE products="66523"
4

4 回答 4

3
select * from productinfo where FIND_IN_SET ('66523', products);

小提琴

于 2013-06-21T12:54:51.380 回答
2

尝试:

SELECT *
FROM   productinfo
WHERE  Concat(',', products, ',') LIKE '%,66523,%'  

这个 fiddle中,您可以检查是否返回了前三行,因为它们包含 66523 产品,但不是第 4 行,其中包含包含66523 的产品编号。

但是将多个数据存储到一个字段中是一个非常糟糕的习惯。您最好使用外键将此数据拆分到一个新表中。否则,您将陷入类似的变通方法,没有任何有效的方法来使用索引,因此性能低下。

于 2013-06-21T09:51:39.783 回答
0

你试过这样吗?

SELECT * from productinfo WHERE products like "66523,%" OR products like  "%,66523,%" OR products like  "%,66523" or products="66523";
于 2013-06-21T10:22:14.893 回答
0

用这个:-

SELECT * from productinfo WHERE products like "66523,%" OR  products like ",66523,%" OR  products like "%,66523"

它将匹配包含66523, + something.OR , + 66523, + something.OR something + 66523(最后一个数字)的任何内容。它将确保整数匹配。

SQL 小提琴演示

于 2013-06-21T09:51:53.127 回答