字母顺序不起作用

时间:2010-09-05 05:49:11

标签: php mysql

我有客户详细信息,有姓氏列,

某些记录的名称前后都有空格,

我想按字母顺序排序,但工作不正常,

这个屏幕截图,我无法猜测是什么原因,

alt text

2 个答案:

答案 0 :(得分:5)

space被视为字符,然后在对数据进行排序时会将其考虑在内。

在插入数据库之前,您可能需要trim()数据。

答案 1 :(得分:0)

leonardys是对的,你应该在进入数据库之前修剪所有输入。但是,仅凭这一点并不能解决人们将标点字符放在他们名字前的问题。

假设此数据库反映了用户输入,您应该进行更彻底的输入验证。仅允许按字母顺序输入(如果需要也带有重音)是一个很好的解决方案(假设您只需要真实姓名)。而不是试图消除不需要的字符,将输入限制为仅允许的输入。但是,不应限制空间,因为许多有效名称包含空格(例如Ann Mary),因此您应在输入后修剪输入。

至于更新数据库,这将是棘手的。修剪只会解决空间问题。如果这是基于用户的数据,请尝试询问具有非法字符的数据,以更新其个人资料,并且在他们这样做之前不要让他们访问该网站。您可以原谅它作为数据库升级或其他一些技术问题。

希望我帮助过。