dongqiang2069 2014-03-18 13:10
浏览 23
已采纳

mysql | 从空列和FIND_IN_SET请求

I have a table:

id  name   position   status
1   A      1,2        1
2   B      1          1
3   C                 1
4   D      2          1

Where: position column is a text field; My request is here:

SELECT `id` 
FROM  `table` 
WHERE `status`=1
AND `position` >  ''
AND `position` = FIND_IN_SET( 1,  `position` ) 
OR  `position` = FIND_IN_SET( 2,  `position` ) 

This request will return: 1,2,3,4. This is a wrong as I need: 1,2,4 -> Condition: (position > ''). Where is a problem and how to change my request? Thanks.

  • 写回答

1条回答 默认 最新

  • drkxgs9358 2014-03-18 13:19
    关注

    you dont need to check if position is empty while you checking numbers in field list .

    you dont need to check position = FIND_IN_SET.... . it will return the value where 1 is in position.

    you need to do it like that:

     SELECT `id` 
     FROM  `table` 
     WHERE `status`=1
     AND  FIND_IN_SET( 1,  `position` ) 
     OR   FIND_IN_SET( 2,  `position` ) 
    

    DEMO HERE

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛