美文网首页
mysql按照in的id顺序,查询列表

mysql按照in的id顺序,查询列表

作者: flyjar | 来源:发表于2020-11-24 11:25 被阅读0次
select * from job where id in(10,11,1,3) order by FIND_IN_SET(id,'10,11,1,3') asc

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="''"/>这样写,才可以。默认为空字符

    <select id="getOriginalMaterialOccupiedQuantity" parameterType="list" resultType="bigDecimal">
        SELECT
            ActualDemand - OccupiedQuantity AS OccupiedQuantity
        FROM
            demandplan
        WHERE
            ObjectID IN

        <bind name="ids" value="''"/>

        <foreach item="item" index="index" collection="list"  open="(" separator="," close=")">
            #{item}
            <bind name="ids" value="ids+',' + item" />
        </foreach>

         ORDER BY FIND_IN_SET(ObjectID,#{ids}) ASC
    </select>       

相关文章

网友评论

      本文标题:mysql按照in的id顺序,查询列表

      本文链接:https://www.haomeiwen.com/subject/mbriiktx.html