在处理西班牙语字符时,如何在mysql中获取第一个字母等于'X'的记录?

时间:2013-08-20 06:51:45

标签: mysql collation

举个例子:

select *
from recording as r
where left(r.title, 1) = 'p'

这将选择录制标题以字母 p 开头的所有录制内容。我可以用其他字母......

但问题是,我正在处理一张西班牙语表格,其中包含¿-Porqué?«Por un amor» o甚至¡..Pon la mesa!等等......我确实希望这些录音成为我的结果集的一部分。

如何获取仅以特定字母开头的录音?

我是否需要在表格中创建一个单独的列,让我们称之为“排序名称”,然后插入录音标题以及所有这些特殊字符被删除?它们是其他解决方案,我在mysql中不知道的特殊功能吗?

由于

2 个答案:

答案 0 :(得分:2)

你可以使用mysql regexp:

SELECT * FROM recording WHERE title REGEXP '^[^a-zA-Z]*[pP]'

答案 1 :(得分:1)

您可以这样使用SQL LIKE通配符'_':

SELECT * FROM recording AS r WHERE r.title LIKE '_P%'

它将接受P字母前的任何字符。 (只有一个角色)

如果你不想匹配诸如'Ap ...'之类的单词,你可以使用SQL正则表达式函数(谷歌它,它有很好的文档记录),或者如果案例是很少见。

编辑:好的,所以你想要将标题与第一个字母后面的几个特殊字符匹配。 在这种情况下,使用正则表达式函数(SQL端或PhP端,取决于您的需求)应该是最好的方法