gpt4 book ai didi

mysql - 当存在特殊字符时,使用 REPLACE() 按字母数字顺序对 mySQL SELECT 进行 ORDER BY

转载 作者:行者123 更新时间:2023-11-29 21:50:00 27 4
gpt4 key购买 nike

我在 SO 上做了几次不同的搜索,寻找一个简单的解决方案来按字母数字方式对 mySQL 结果进行排序,其中某些字段可能存在特殊字符。解决办法:

"SELECT *, REPLACE(title '\"', '') AS indexTitle ORDER BY indexTitle ASC";

在本例中,我正在搜索以双引号开头并转义的字符串。

在特殊字符类型未知的情况下,这可能不是一个很好的解决方案,但对于简单的排序来说,它效果很好。

希望这对某人有帮助。

最佳答案

实现此目的的一种方法是编写自己的函数来从字符串中去除非字母数字字符。谷歌找到了我this example (我没有检查过!)。然后你可以这样写:

SELECT *, remove_non_alphanum_char_f(title) AS indexTitle ORDER BY indexTitle ASC;

当然,正如 @arkascha 在上面的评论中指出的那样,这是缓慢且不可扩展的。更好的解决方案是返回一步,如果可能的话,首先确保表中的数据采用正确的格式。如果您确实需要特殊字符,那么在表中添加额外的列(即删除了特殊字符的 title 列)可能会减少开销 - 然后您可以只按该列进行排序。您可以在插入表时执行剥离。

关于mysql - 当存在特殊字符时,使用 REPLACE() 按字母数字顺序对 mySQL SELECT 进行 ORDER BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33742193/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com