表 productinfo 中字段数据的我的数据库条目是这样的,例如:
66523,665893,745896321
现在我想要一个SELECT
给我洞入口的声明:
例如:
SELECT * from productinfo WHERE products="66523"
select * from productinfo where FIND_IN_SET ('66523', products);
尝试:
SELECT *
FROM productinfo
WHERE Concat(',', products, ',') LIKE '%,66523,%'
在这个 fiddle中,您可以检查是否返回了前三行,因为它们包含 66523 产品,但不是第 4 行,其中包含包含66523 的产品编号。
但是将多个数据存储到一个字段中是一个非常糟糕的习惯。您最好使用外键将此数据拆分到一个新表中。否则,您将陷入类似的变通方法,没有任何有效的方法来使用索引,因此性能低下。
你试过这样吗?
SELECT * from productinfo WHERE products like "66523,%" OR products like "%,66523,%" OR products like "%,66523" or products="66523";
用这个:-
SELECT * from productinfo WHERE products like "66523,%" OR products like ",66523,%" OR products like "%,66523"
它将匹配包含66523, + something.
OR , + 66523, + something.
OR something + 66523
(最后一个数字)的任何内容。它将确保整数匹配。