在我们的数据库模式中,ItemID通常包含在ItemValue列中,但它填充了信息(具体为URL)。我试图找到一种方法来查询我们的数据库,并查找ItemIDlue列中未包含ItemID的地方。
以下是我要做的事情的要点,替换为该行的ItemValue值。
SELECT ItemID, ItemValue
FROM SomeTable
WHERE Deleted = 0
AND ItemID NOT LIKE '%<ITEMVALUE>%'
感谢。
答案 0 :(得分:3)
如果您想要不区分大小写,例如如果您的ItemID可以是字母数字,请引入lower()
函数:
SELECT ItemID,
ItemValue
FROM SomeTable
WHERE Deleted = 0
AND lower(ItemID) NOT LIKE '%'|| lower(ITEMVALUE) ||'%';
或者:
SELECT ItemID,
ItemValue
FROM SomeTable
WHERE Deleted = 0
AND instr(lower(itemvalue), lower(ItemID)) = 0;
我不确定哪一个更具性能,但两者都有效。
如果您不关心大写或小写,例如如果ID是数字,您只需删除lower()
函数。