Manon.icu

I'm here to make you a better developer by teaching you everything I know about building for the web.

Published 2022-06-07

Postgresql - LIKE

假如我们要查询 name 字段以 Jen开通 的所有记录,可以这样写:

SELECT
	  first_name,
    last_name
FROM
	customer
WHERE
	first_name LIKE 'Jen%';

gqS8IL

  • % 匹配任意多个字符
  • _ 匹配一个字符

语法

value LIKE pattern [ESCAPE escape_character]
value NOT LIKE pattern [ESCAPE escape_character]

示例

SELECT
	'foo' LIKE 'foo', -- true
	'foo' LIKE 'f%', -- true
	'foo' LIKE '_o_', -- true
	'bar' LIKE 'b_'; -- false
  • 第一个表达式返 true,因为该表达式不包含任何通配符,类似于=
  • 第二个表达式返 true,因为该表达式包含一个通配符,以f开头,后跟任意数量的字符
  • 第三个表达式返 true,因为该表达式包含一个通配符,以_开头,匹配任何单个字符开通,后跟字幕o并以任何单个字符结尾的字符串
  • 第四个表达式返 false,因为该表达式包含一个通配符,以b开头,匹配任何单个字符开通,后跟字幕_并以任何单个字符结尾的字符串

例如,查询返回名字包含er字符串的所有记录:

SELECT
	first_name,
  last_name
FROM
	customer
WHERE
	first_name LIKE '%er%'
ORDER BY
  first_name;

Vy9Num

%_的使用

SELECT
	first_name,
	last_name
FROM
	customer
WHERE
	first_name LIKE '_her%'
ORDER BY
  first_name;

Po7USK

Operator Equivalent
~~ LIKE
~~* ILIKE
!~~ NOT LIKE
!~~* NOT ILIKE

Comments

No Comments!