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="''"/>这样写,才可以。默认为空字符
会的。mysql中查询in参数太多,导致查询很慢,使用join优化。
MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle旗下产品。
表结构如下: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)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)