我一直试图找到这个问题的解决方案,但没有任何运气。我知道这里有几个类似的问题,但它们都是更复杂的情况,并不适用。好的,问题是:
我有一个非常简单的表,其中包含交易收款人及其相关类别的列表。结构为id - int
,name- varchar
和cat - varchar
我正在尝试执行简单查询以按字母顺序显示收款人姓名,使用while
循环添加到选择框中。无论我是否使用ASC或DESC,它们都没有明显的顺序显示。条目的开头或结尾没有空格。
以下是查询 - SELECT name FROM payees ORDER BY name
尝试在phpMyAdmin中按字母顺序排序时,我得到相同的结果。 id
是一个自动增量int字段和主键。
谢谢!
更新
以下是示例输出 - SELECT name FROM payees ORDER BY name ASC
整理是utf8_unicode_ci
解决
感谢@JohnFlatness解决难题。事实证明这实际上是代码中的一个缺陷 - 这个项目有一个移动和常规版本。移动版脚本中存在一个错误,即在name
列条目的开头添加了空格。我发现检查的条目很好,错过了那些有空白区域的条目。
感谢您的帮助 - 通过评论解决,第一个对我来说lol
答案 0 :(得分:1)
这些字段可能并不包含您认为他们所做的数据。尝试转储SELECT HEX(name) FROM payees
的输出以准确显示每个字段中的内容。输出应以供参考:
417262792773 Arby's
446F6C6C61722047656E6572616C Dollar General
4578786F6E Exxon
6954756E6573 iTunes
52656420426F78 Red Box
53686565747A Sheetz
537461726275636B73 Starbucks
57616C677265656E73 Walgreens
57616C6D617274 Walmart
答案 1 :(得分:0)
SELECT name FROM payees ORDER BY name trim(ASC)
同时验证表格排序是否以* _ci
结束