0

举个例子:

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

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

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

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

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

谢谢

4

2 回答 2

2

您可以使用 mysql 正则表达式:

SELECT * FROM recording WHERE title REGEXP '^[^a-zA-Z]*[pP]'
于 2013-08-20T07:11:10.777 回答
1

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

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

它将接受 P 字母之前的任何字符。(而且只有一个字符)

如果您不想匹配诸如“Ap...”之类的单词,您可以使用 SQL 正则表达式函数(谷歌它,它有很好的文档),或者如果这种情况足够罕见,则使用 PhP 之后检查它。

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

于 2013-08-20T07:03:49.650 回答