郁闷啊,难道MYSQL不支持条件表达式排序?

山雨欲来-风满楼 2005-05-10 05:27:27
郁闷啊,难道MYSQL不支持条件表达式排序?

$sql="select * from test order by field1,field2='I',field2='A',field3"
没有报错,可就是没有按field2='I',field2='A'来排序,即同样的field1,还是按原来的顺序排着:(

没试过MS SQL是不是支持表达式排序 :D

但好像听过ORACLE支持,是不是MYSQL真的不支持呀,那真的郁闷哟~~~~

再请教高手,是不是有替代方案?
别告诉我根据field2的每个可能值都新建一个字段,那真要晕了~~~~~~

...全文
258 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
忘了一件事,其实,我已经用一种变通的方法也解决了这个问题.

就是不用条件表达式,而是按此字段的值按照真实顺序来编排值,而不是按照英文单词的意义来设定首字母:D,并设置好增加新定单时的缺省字段值字母。

如,真实顺序是Insert,Normal,Append,如果按照真实顺序那就应该是I,N,A,就得使用条件表达式。
但如果我变通一下,强制用A表示Insert,I表示Normal,N表示Append,那不就结啦:p

当然,以上仅适用于自己可以编排字段值所代表意义的情况下,有时候还是必须使用条件表达式的。
  • 打赏
  • 举报
回复
哈哈,真的支持耶!

我发现我最初的错觉来自:表达式排序默认的升序是满足条件的在后面!
所以,在每一个条件表达式后面加上desc,就可以得到我们正常的思维:满足条件的在前:)

谢谢大家,结帖啦~~~~
  • 打赏
  • 举报
回复
晕了,我的咋通不过呢:(

我再仔细试试先~~~~
xuzuning 2005-05-18
  • 打赏
  • 举报
回复
这个意思?当然可以啦!
SELECT * FROM `x1`
in val
1 aaa
2 bbb
3 ccc

SELECT * FROM `x1` order by val='ccc',val='aaa'
in val
2 bbb
1 aaa
3 ccc

SELECT * FROM `x1` order by val='ccc' desc,val='aaa'
in val
3 ccc
2 bbb
1 aaa

mysql4.0.1通过
  • 打赏
  • 举报
回复
郁闷,我的只是4.01的,不好试:(
Meteorlet 2005-05-12
  • 打赏
  • 举报
回复
MySQL支持表达式排序的,随即排序就可以这样 Order by rand()
怎么排序是看表达式的值,如果是条件表达式,那么其值就是true(1) or false(0)
ORDER BY field2='I'是可以把I的放到一起的,至于前后用ASC,DESC指定。
xuzuning 2005-05-11
  • 打赏
  • 举报
回复
请说明order by field2='I'的含义
lzp25 2005-05-11
  • 打赏
  • 举报
回复
晕过类似问题,只好用加字段解决
关注解决方案
helloyou0 2005-05-11
  • 打赏
  • 举报
回复
哦,明白了
我在4.1下试了是可以的
但是因为=成立的时候是1,否则得到0
所以顺序和你说的是相反的
即field2='I',field2='A'的顺序是A,I
field2='A',field2='I'的顺序是I,A
  • 打赏
  • 举报
回复
问题是field2有很多可能的值,而且在现实中的顺序并不是按照字母顺序的:(
ray929 2005-05-11
  • 打赏
  • 举报
回复
学习一下
  • 打赏
  • 举报
回复
现实意义就是:

如果field2=I,则这条记录会排在field2=A的前面,还会排在field2=M的前面,还会排在上面所列的所有其它值的前面.
以此类推...
  • 打赏
  • 举报
回复
order by field1,field2='I',field2='A',field3"
其中的field2重复了二次,实际上还可能有更多.理论上一种值就重复一次.

假设field2有以下可能的值:I,A,D,M,P,N
现实中我就是要按照上面所列的字母顺序来排序,而不是按照order by field2默认的A-Z字母顺序来排!

helloyou0 2005-05-11
  • 打赏
  • 举报
回复
我也不懂什么意思
cfzx 2005-05-10
  • 打赏
  • 举报
回复
如果field2不复杂的话,用field2 desc将就一下就好了。

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧