【发布时间】:2018-06-11 07:50:47
【问题描述】:
我有一个 varchar 列,例如 'a,b,c,d,cd,cx,bx'。这有用于分隔一些前缀代码的逗号,我想在此列中搜索 c 前缀。列名是前缀。
当我们使用 IN 运算符时:
select * from prefixes where 'c' IN (prefix)
它确实有效,但如何?我知道前缀必须是 'a'、'b'、'c'、'd'、'cd'、'cx'、'bx' 才能用于 IN 运算符,例如:
select * from prefixes where 'c' IN ('a', 'b', 'c', 'd', 'cd', 'cx', 'bx')
我错了吗?它是如何工作的?逗号不是分隔符。那些是像前缀这样的字符串。
【问题讨论】:
-
您使用的是哪个版本的 SQL?
-
火鸟 2.5。我在 ibexpert 中测试过
-
永远不要将数据存储为逗号分隔的项目。只会给你带来很多麻烦。
-
@jarlh 我同意你的观点,我认为这个查询不应该正常工作,但它可以工作。怎么样?
标签: sql operators firebird sql-in