【发布时间】:2019-09-20 00:36:18
【问题描述】:
我有一个包含两个字段的表。第一个是name,类型为string。第二个包含一个或多个用逗号分隔的字符串(但它可以包含一个完全没有逗号的字符串)
我想构造一个查询来了解name 字段中的字符串不 是否存在于names 字段中的每个 逗号分隔的字符串中。
示例 1:
---------------------------------------------------------
name names
---------------------------------------------------------
myname xmyname,myname,mynamey
所有逗号分隔的字符串都包含单词myname。所以查询不应该返回这一行。
但是,示例 2:
---------------------------------------------------------
name names
---------------------------------------------------------
myname x,myname,mynamey
应该退货。因为 x 不包含 myname。
条件是,如果name字段中的字符串在names字段的逗号分隔字符串的每个中都不存在,则返回该行。
这是不正确的,因为此查询在示例 2 中不会返回 true(其中包含 x,但不包含 myname)。
重要提示:
1) 逗号的数量没有限制。它可以是 0 个逗号或更多。如何处理?
2) 字符串是变量。字符串并不总是myname。每行在name 字段中包含一个不同的字符串。
【问题讨论】:
-
您确实需要重新考虑您的数据库。将这些“名称”移动到单独的表中。如果你要做这种事情,你不应该只用一个列来操作。