如果符合字符串/字符的某些条件,我需要返回结果。
例如:只返回包含' F'的名称来自Person
表的字符。
如何根据这些条件创建SQL查询?是否有任何文档链接可以解释SQL如何执行此类查询?
提前致谢
答案 0 :(得分:2)
最基本的方法是使用LIKE
运算符:
-- name starts with 'F'
SELECT * FROM person WHERE name LIKE 'F%'
-- name contains 'F'
SELECT * FROM person WHERE name LIKE '%F%'
(%
是通配符)
答案 1 :(得分:1)
查询可能如下所示:
SELECT * FROM Person WHERE FirstName LIKE '%F%' OR LastName LIKE '%F%'
答案 2 :(得分:1)
大多数RDBMS都提供字符串操作,能够以某种方式执行所需的任务。
在MySQL中,您可以使用INSTR
:
SELECT *
FROM yourtable
WHERE INSTR(Person, 'F') > 0;
在PostgreSQL中,您可以使用STRPOS
:
SELECT *
FROM yourtable
WHERE strpos(Person, 'F') > 0;
通常有几种方法可以解决这个问题,很多人会选择LIKE
运算符。有关更多详细信息,请参阅您选择的RDBMS文档。
<强>更新强>
根据提问者的要求,提及LIKE
运算符,这些运算符不仅用于MySQL或Oracle,还用于其他RDBMS。
在某些情况下使用LIKE
会使您的RDBMS尝试使用索引,如果您使用字符串函数,通常不会尝试这样做。
示例:
SELECT *
FROM yourtable
WHERE Person LIKE 'F%';