[英]SQL Select pattern like column_name
是否存在諸如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,因為它們是子字符串。
SELECT column_name
FROM table_name
WHERE instr('c:/tests/two/fail/results', column_name) > 0;
如果您真的想使用LIKE,則可以使用
SELECT
*
FROM
example
WHERE
'c:/tests/two/fail/results'
LIKE
CONCAT(val, '%');
請注意,LIKE的右側是一個模式,您必須在其后附加通配符'%'。
注意:
當然,絕大部分的解決方案都會起作用,甚至可能更快。
我的解決方案的另一個問題是,列val
本身可能不包含通配符。 現在,LIKE的兩個通配符是
% Matches any number of characters, even zero characters
_ Matches exactly one character
下划線不僅是文件路徑中允許的字符,而且經常被使用。 我強烈建議使用juergen d的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.