我有一个在列中有子字符串值的表,我想编写一个查询输入字符串是否有子字符串的查询。
我的表格如下:
| company | host |
| ------- | ---------- |
| ebay | ebay.com |
| google | google.com |
| yahoo | yahoo.com |
我的输入将是www.ebay.com或https://www.ebay.com或www.qa.ebay.com或www.dev.ebay.com ..
如果我得到任何输入,我想返回第一条记录。
我试着查看CHARINDEX,INSTR,但他们正在反向工作。我的场景是我在表中搜索子字符串,并将实际字符串作为输入。
感谢任何帮助。
答案 0 :(得分:2)
您可以使用like
,但您还需要字符串连接。在ANSI标准SQL中,它看起来像:
select t.*
from t
where @inputstring like concat('%.', t.host)
其中@inputstring
是您输入的字符串。
注意:您还可以使用串联中缀操作,通常为||
(标准)或+
。
答案 1 :(得分:1)
您可以像这样使用SQL通配符:
SELECT * FROM table WHERE host LIKE '%ebay.com';
答案 2 :(得分:0)
您可以使用like运算符来实现此目的。
从yourtable中选择* 哪里?像concat('%',公司,'%');
参数?与您的意见。
答案 3 :(得分:0)
去吧:
SELECT * FROM table WHERE host LIKE '%SearchString%'
它将拉出包含SearchString的所有行。