我尝试只查询小写结果,但LIKE
不区分大小写。
这是一个例子:
SELECT
CITY
FROM
TARGETS
WHERE
CITY RLIKE '^b.*n$'
结果是
BOSTON
boston
我只想保留“波士顿”,但我不知道该怎么做。我检查了这个旧答案:
但是,该语句CAST(CITY AS BINARY) RLIKE '^b.*n$'
在 PostgreSQL 中不起作用。
我尝试只查询小写结果,但LIKE
不区分大小写。
这是一个例子:
SELECT
CITY
FROM
TARGETS
WHERE
CITY RLIKE '^b.*n$'
结果是
BOSTON
boston
我只想保留“波士顿”,但我不知道该怎么做。我检查了这个旧答案:
但是,该语句CAST(CITY AS BINARY) RLIKE '^b.*n$'
在 PostgreSQL 中不起作用。
RLIKE
在 MySQL 中使用。Postgres 中的正则表达式匹配运算符是~
. (标准 SQL 都不是。)
~
默认情况下区分大小写。
~*
是不区分大小写的变体。
这会让你得到“波士顿”但不是“波士顿”:
SELECT city
FROM targets
WHERE city ~ '^b.*n$';
看:
但
LIKE
不区分大小写。
您可能已经绊倒了那里的双重否定,但“不区分大小写”(即区分大小写)是您想要的。这也是LIKE
Postgres(或标准 SQL)中的工作方式:
SELECT city
FROM targets
WHERE city LIKE 'b%n';
如果您想要不区分大小写,请ILIKE
在 Postgres 中使用。
db<>在这里摆弄
但 MySQL 的做法不同:
db<>在这里摆弄
看: