簡體   English   中英

SQL - 匹配字符串中的最后兩個字符

[英]SQL - match last two characters in a string

我有一個小型 mysql 數據庫,其列的字段格式如下:

x_1_1,
x_1_2,
x_1_2,
x_2_1,
x_2_12,
x_3_1,
x_3_2,
x_3_11,

我想在匹配最后一個“_1”的地方添加額外的數據。 因此,如果我對上述示例數據集運行查詢,它將返回

x_1_1,
x_2_1,
x_3_1,

這不應返回 x_2_12 或 x_3_11。

我試過像 '%_1' 但它也返回 x_2_12 和 x_3_11 。

謝謝!

一個簡單的方法是right() function:

select t.*
from t
where right(field, 2) = '_1';

您可以使用like但您需要轉義_

where field like '%$_1' escape '$'

或者使用正則表達式:

where field regexp '_1$'

下划線字符在 LIKE 子句中具有特殊意義。 它充當通配符並代表一個字符。 所以你必須用反斜杠轉義它:

LIKE '%\_1'

RIGHT 也可以完成這項工作,但它要求您為正在尋找的字符串提供適當的長度,因此靈活性較差。

呵呵,我找到了答案。

使用 RIGHT (col_name, 2) = '_1'

謝謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM