比较SQL中的字符串

时间:2014-12-09 19:47:20

标签: sql

如果符合字符串/字符的某些条件,我需要返回结果。

例如:只返回包含' F'的名称来自Person表的字符。

如何根据这些条件创建SQL查询?是否有任何文档链接可以解释SQL如何执行此类查询?

提前致谢

3 个答案:

答案 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;

也在Oracle, this can be done

在PostgreSQL中,您可以使用STRPOS

SELECT *
FROM yourtable
WHERE strpos(Person, 'F') > 0;

通常有几种方法可以解决这个问题,很多人会选择LIKE运算符。有关更多详细信息,请参阅您选择的RDBMS文档。

<强>更新

根据提问者的要求,提及LIKE运算符,这些运算符不仅用于MySQLOracle,还用于其他RDBMS。

在某些情况下使用LIKE会使您的RDBMS尝试使用索引,如果您使用字符串函数,通常不会尝试这样做。

示例:

SELECT *
FROM yourtable
WHERE Person LIKE 'F%';