我想在数据库表中选择id,其中allot字段在字符串中具有特定的整数值。
示例: - 在分配列中我想在逗号(,)分隔字符串中搜索值26,此处结果应为id = 72
答案 0 :(得分:1)
修复您的数据结构!您应该使用每个值和每个id一行的联结/关联表。这是表示数据的SQL方式。为什么你的结构不好?
有时,我们会遇到其他人真正非常糟糕的设计决策。在这些情况下,您可以使用like
:
SELECT p.id
FROM Prospects p
WHERE ',' || allot || ',' like '%,26,%';
答案 1 :(得分:0)
使用LIKE
运算符,您应该能够解决您的需求。考虑到您的表名是Prospects:
SELECT id FROM Prospects
WHERE allot LIKE '%,26,%'
EDIT-1 :您可以通过在此处提到的查询中添加其他逗号来缩小搜索范围!
EDIT-2 :要另外处理方案,您可以使用与此类似的 UNION 进行相同的查询。这 不是 想要实现的东西,而是实现存储过程来检查这些场景并在逻辑中处理它。
SELECT id FROM Prospects
WHERE allot LIKE '%,26,%'
UNION
SELECT id FROM Prospects
WHERE allot LIKE '%,26%'
UNION
SELECT id FROM Prospects
WHERE allot LIKE '%26,%'
希望这能回答你的问题!
答案 2 :(得分:0)
尝试推荐'SELECT id FROM (table_name) WHERE allot LIKE '%,26,%'
'%x%'将在提供的列中查找包含x的任何内容
基本上如果你找到x的东西给我