mysql怎么按 in 里面 id 的顺序排列

mysql怎么按 in 里面 id 的顺序排列,第1张

表结构如下:

mysql>select * from test

+----+-------+

| id | name |

+----+-------+

| 1 | test1 |

| 2 | test2 |

| 3 | test3 |

| 4 | test4 |

| 5 | test5 |

+----+-------+

执行以下SQL:

mysql>select * from test where id in(3,1,5)

+----+-------+

| id | name |

+----+-------+

| 1 | test1 |

| 3 | test3 |

| 5 | test5 |

+----+-------+

3 rows in set (0.00 sec)

这个select在mysql中得结果会自动按照id升序排列,

但是我想执行"select * from test where id in(3,1,5)"的结果按照in中得条件排序,即:3,1,5,

想得到的结果如下:

id name

3 test3

1 test1

5 test5

请问在这样的SQL在Mysql中怎么写?

网上查到sqlserver中可以用order by charindex解决,但是没看到Mysql怎么解决??请高手帮忙,谢

谢!

select * from a order by substring_index('3,1,2',id,1)

FIND_IN_SET是绝对匹配类型的。例如id为1,那么返回2。直接匹配到1上。而不会匹配到11上

在mybatis的xml中,实现方式

<bind>标签中的value是直接读取的参数的 。

<bind name="ids" value="a"/>这样并不是代表值是a,而是读取a这个参数。

<bind name="ids" value=""/>不能直接默认这样写。而是<bind name="ids" value="''"/>这样写,才可以。默认为空字符


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7433903.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存