gpt4 book ai didi

sql - Postgres 正则表达式 ^ 以 $ 结尾

转载 作者:行者123 更新时间:2023-12-03 17:50:45 24 4
gpt4 key购买 nike

新手问题。我正在寻找以字母“R”开头的刺
这有效:

SELECT *
FROM table
WHERE column LIKE 'R%'

这不
SELECT *
FROM table
WHERE column LIKE '^R%'

为什么?
也只是好奇,如果我希望它以 R 结尾,我用的是 $?
'%R$'

这里没有很好地解释模式匹配。如果您知道外行的任何其他资源,请分享。谢谢
https://www.postgresql.org/docs/9.3/static/functions-matching.html

最佳答案

说明书很清楚LIKE和正则表达式是两个不同的东西。

喜欢

根据手册:

The LIKE expression returns true if the string matches the supplied pattern. (As expected, the NOT LIKE expression returns false if LIKE returns true, and vice versa. An equivalent expression is NOT (string LIKE pattern).)



因此,LIKE 在匹配字符串时返回 true 或 false。
%类似于 *在文件搜索中,这意味着它将匹配零或任何之后或之前。
  • R% R 和之后的任何字符。
  • %R和 R 之前的任何字符
  • LIKE它被用来代替 = ,手册中解释了更多功能。
    -- Gets zero or any characters before one R
    SELECT * FROM table WHERE column LIKE '%R'

    -- Gets zero or any characters after one R
    SELECT * FROM table WHERE column LIKE 'R%'

    喜欢
    LIKE区分大小写,要使其不区分大小写,您可以使用 ILIKE
    正则表达式

    在 postgreSQL 中,对于正则表达式匹配,而不是使用 =您使用 ~正则表达式格式对应于 POSIX regular expressions标准

    一个例子是:
    -- Gets zero or any spaces numbers and text characters before one R
    SELECT * FROM table WHERE column ~ '^[\s\w]*[R]{1}$'

    -- Gets zero or any spaces numbers and text characters after one R
    SELECT * FROM table WHERE column ~ '^[R]{1}[\s\w]*$'

    在手册中有对所有可用的正则表达式运算符的解释。如何使用正则表达式是另一回事,它在 POSIX regular expressions 中。标准;这与 PostgreSQL 无关。

    关于sql - Postgres 正则表达式 ^ 以 $ 结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46978821/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com