我有一个varchar字段与这样的内容:找到一个varchar的元素在另一个VARCHAR
a,b,c,d
e,d,a,c
b,q,d,e
我需要做的是选择只与具有要素领域的行的查询与输入等于串。
前 输入:C,选择的
行:
a,b,c,d
e,d,a,c
是可能的,而不使用OR(场像 '%的%' OR字段LIKE '%C%')?
感谢
我有一个varchar字段与这样的内容:找到一个varchar的元素在另一个VARCHAR
a,b,c,d
e,d,a,c
b,q,d,e
我需要做的是选择只与具有要素领域的行的查询与输入等于串。
前 输入:C,选择的
行:
a,b,c,d
e,d,a,c
是可能的,而不使用OR(场像 '%的%' OR字段LIKE '%C%')?
感谢
是的,你可以使用...
WHERE
myField LIKE '%a%' AND myField LIKE '%c%'
但是,这听起来就像你在你的SQL就傻眼场。
通常情况下,你可以使用一个链接表,指定这样的信息:
Table1
id
otherdata...
Table2
id
letter
LinkTable
Table1Id
Table2Id
所以LinkTable你会链接你的记录许多条目。因此,而不是在一个领域存储“A,B,C,d”,你有四个链接记录:
Table1Id Table2Id
1 1 (a)
1 2 (b)
1 3 (c)
1 4 (d)
是的,但你需要一招:创建包含相同的值,但排序的第二列:
现在a,b,c,d
a,c,d,e
b,d,e,q
,您可以查询%a%c%
这如果查询字符串可以是任何不想要的价值的一个子都不行。如果是这样的话,你需要报价:
"a","b","c","d"
"a","c","d","e"
"b","d","e","q"
和查询%"a"%"c"%
好像你需要一个在这里不是一个OR,IM好奇,为什么不呢? – medopal 2010-03-22 09:45:47
我同意medopal - 你样本不是很好,两行包含两个字符。无论如何,有人没有正常化该数据库... – Kobi 2010-03-22 09:48:40