查询以在列中搜索子字符串

时间:2017-01-18 03:32:44

标签: sql oracle

我有一个在列中有子字符串值的表,我想编写一个查询输入字符串是否有子字符串的查询。

我的表格如下:

| 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,但他们正在反向工作。我的场景是我在表中搜索子字符串,并将实际字符串作为输入。

感谢任何帮助。

4 个答案:

答案 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的所有行。