0

我的 pgsql 数据库中有包含用户标识符的文本字段。一个字段可以包含一个或多个用# 分隔的ID。在保存数字时使用 PHP 内爆,所以我可以有例如:

Row 1: 3#36#66#33

Row 2: 5#56#33#55.

我应该如何准备 SQL 查询以选择具有一个或多个 id 的字段而没有任何歧义?

例子:

SELECT product FROM cms_product WHERE product_mod LIKE '3'

可以选择我不想要的第 1 行和第 2 行。我该如何解决?

编辑:

我将不得不选择此字段中包含用户 ID 的所有行,例如:

UserId: 3
Field 1:
55#64#333#2
Field 2:
12#3#55#6423
Field 3;
654#33#11#98

只应选择字段 2。

4

1 回答 1

1

尽管您确实应该努力使数据库正常化,但这是对已发布问题的答案

select product
from cms_product
where '3' = any(regexp_split_to_array(product_mod, '#'))
于 2013-07-29T11:58:43.383 回答