MySQL定位和反向查询

时间:2011-11-18 13:52:57

标签: mysql

这应该很简单,但我在细节上迷失了......

在数据库字段中,如果字符串包含单词“century”,我想要前一个单词,例如'16'

我一直在尝试使用LOCATE和REVERSE函数,但是无法使它工作。有人可以帮忙吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

你可以尝试:

使用substring_index在'世纪'之前返回字符串 使用reverse来反转字符串。
使用substring_index在第一个空格之前返回字符串(可能需要修剪它?) 使用reverse可以再次反转字符串。

答案 1 :(得分:0)

mysql> select substring_index('what century now', 'century', 1);
+---------------------------------------------------+
| substring_index('what century now', 'century', 1) |
+---------------------------------------------------+
| what                                              | 
+---------------------------------------------------+
1 row in set (0.00 sec)

mysql> select substring_index('what centuries now', 'century', 1);
+-----------------------------------------------------+
| substring_index('what centuries now', 'century', 1) |
+-----------------------------------------------------+
| what centuries now                                  | 
+-----------------------------------------------------+
1 row in set (0.00 sec)

mysql> select substring_index('what century now century', 'century', 1);
+-----------------------------------------------------------+
| substring_index('what century now century', 'century', 1) |
+-----------------------------------------------------------+
| what                                                      | 
+-----------------------------------------------------------+
1 row in set (0.00 sec)