【问题标题】:regular expression to select last but one character正则表达式选择最后一个字符
【发布时间】:2016-05-09 12:32:01
【问题描述】:

我希望 MySQL 查询将检索字符串中的最后一个字符

EX:你好,RAM,SHIVU,RAJEEV

输出:l,A,V,E

我尝试了如下正则表达式

select * from tb_name where fn REGEXP "a$"

这会将最后一个章程检索为“a”,但我希望 OUTPUT 如上所述。

【问题讨论】:

  • hello, RAM, SHIVU, ... 是 fn 列的值吗? (分隔的行) 或者所有这些都在一行中作为字符串?
  • 是的,它们是 fn 的价值。

标签: mysql regex phpmyadmin


【解决方案1】:

我不确定您要做什么。根据你的输出,我不得不说你不应该在WHERE 子句上写那个正则表达式。其实你不需要正则表达式。您可以使用SUBSTR() 函数来达到预期的效果:

/* tb_name
+--------+-----------------+
|   fn   | other column(s) |
+--------+-----------------+
| hello  |      ...        |
| RAM    |      ...        |
| SHIVU  |      ...        |
| RAJEEV |      ...        |
+--------+-----------------+
*/

mysql> SELECT SUBSTR(fn, -2, 1) fn FROM tb_name;

/* Output:
+----+-----------------+
| fn | other column(s) |
+----+-----------------+
| l  |      ...        |
| A  |      ...        |
| V  |      ...        |
| E  |      ...        |
+----+-----------------+

【讨论】:

    【解决方案2】:

    你可以试试这个:

    select  left(right(fn, 2),1) from tb_name
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-28
      • 1970-01-01
      相关资源
      最近更新 更多