我有一个名为'value'的varchar(64)
列的表格。我想选择按此列排序的表格中的所有字段。
看起来很简单,但我的PHP代码和phpMyAdmin
都显示错误的顺序。我已经尝试更改表和列的排序规则,但没有任何变化。我已经尝试重命名列名,但没有任何改变。 MySQL在基本级别上行为不端,或者我错过了什么。
以下是SHOW CREATE TABLE Content_Data_String
:
CREATE TABLE `Content_Data_String` (
`id` mediumint(9) NOT NULL AUTO_INCREMENT,
`content_instance_id` mediumint(9) NOT NULL,
`field_id` mediumint(9) NOT NULL,
`value` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
编辑:我的MySQL安装肯定有些可疑。这里不存在这个问题:http://demo.phpmyadmin.net/master-config/#PMAURL-22:sql.php?db=Robin&table=Content_Data_String&server=2&target=&token=a29d3337e04a2be19aa92e83355b0519
答案 0 :(得分:1)
对不起伙计们。我的问题是我的PHP表单在字段值前插入空格。 @Uueerdo实际上就在这里。即使在检查了他的答案之后,我也无法通过phpMyAdmin看到这些额外的空间。重构表时,我使用phpMyAdmin而不是我的php表单来创建值。因此,这种误报激发了我原来的答案。
编辑:是的,模板文件中有一个额外的空格。真是浪费时间。对不起,伙计们。
答案 1 :(得分:0)
您正在使用表格名称"顺序为"。请改用字段名称。示例:"按值从Content_Data_String中选择*;"
答案 2 :(得分:-1)
我认为问题是由名为' value'的列引起的。这是一个保留字,即使我在查询中正确地删除了它的名字,但排序是不正确的。这可能是MySql版本(5.6.23)中的错误。
使用名称' data_value'重新创建表格时我看到问题消失了。
感谢所有人的帮助和建议。