是否存在诸如sql查询之类的内容,其结果受限于包含在查询值中。
通常喜欢:
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;
我希望它是
SELECT column_name(s)
FROM table_name
WHERE pattern LIKE column_name;
例如:
id | val
1 | c:/tests/one
2 | c:/tests/two
3 | c:/
我可以使用'c:/ tests / two / fail / results'进行查询,并返回2和3,因为它们是子字符串。
答案 0 :(得分:1)
SELECT column_name
FROM table_name
WHERE instr('c:/tests/two/fail/results', column_name) > 0;
答案 1 :(得分:1)
如果您真的想使用LIKE,那么您可以使用
SELECT
*
FROM
example
WHERE
'c:/tests/two/fail/results'
LIKE
CONCAT(val, '%');
请注意LIKE的右侧是一个模式,你必须将通配符“%”附加到它。
注意:
当然,juergen的解决方案可以工作,甚至可能更快。
我的解决方案的另一个问题是列val
本身可能不包含通配符。现在LIKE的两个外卡字符是
% Matches any number of characters, even zero characters
_ Matches exactly one character
下划线不仅是文件路径中允许的字符,而且经常被使用。 我强烈建议使用juergen d。
的方法