SQL查询以选择与颜色变体不同的颜色
我已经寻找了一个更好的方法来做这件事,但还没有找到任何适合我具体情况的方法。这是在SQLite中 我有以下疑问:SQL查询以选择与颜色变体不同的颜色,sql,sqlite,select,Sql,Sqlite,Select,我已经寻找了一个更好的方法来做这件事,但还没有找到任何适合我具体情况的方法。这是在SQLite中 我有以下疑问: select color1, color2 from table where color1 = 'red' and color2 not like '%red%' and color2 not like '%scarlet%' and color2 not like '%cherry%' 换句话说,我试图选择与已知颜色变体不匹配的颜色。我必须像一样使用,因为这是自
select color1, color2
from table
where color1 = 'red'
and color2 not like '%red%'
and color2 not like '%scarlet%'
and color2 not like '%cherry%'
换句话说,我试图选择与已知颜色变体不匹配的颜色。我必须像一样使用,因为这是自由格式的文本
我的查询工作得很好,但随着我向其中添加更多变体,它变得很笨拙。我尝试将变量放在另一个表中并使用子查询,如下所示:
select color1, color2
from table
where color1 = 'red'
and color2 not like '%' || (select color_alias from color where color =
'red') || '%'
但是,like语句只计算子查询返回的第一条记录
是否有人知道在查找表中包含颜色变量并仍使用like
运算符的方法?您可以使用exists
运算符:
SELECT color1, color2
FROM mytable
WHERE color1 = 'red' AND
NOT EXISTS (SELECT *
FROM colors
WHERE color = 'red' AND
color LIKE '%' || color2 || '%')
如果你真的想解决这个问题,你应该有另一个表,每个表都有一个基本颜色和变量列。