为了账号安全,请及时绑定邮箱和手机立即绑定

像IN()这样的MySQL?

像IN()这样的MySQL?

芜湖不芜 2019-06-24 15:46:04
像IN()这样的MySQL?我当前的查询如下所示:SELECT * FROM fiberbox f WHERE f.fiberBox LIKE '%1740 %' OR f.fiberBox LIKE '%1938 %' OR f.fiberBox LIKE '%1940 %'我做了一些环顾四周,却找不到类似于IN()的东西-我设想它是这样工作的:SELECT * FROM fiberbox f WHERE f.fiberbox LIKE IN('%140 %', '%1938 %', '%1940 %')有什么想法吗?难道我只是用错误的方式思考这个问题-一个我从未见过的模糊的命令。MySQL 5.0.77-社区日志
查看完整描述

3 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

REGEXP 强权效率更高,但你必须对其进行基准测试才能确定。

SELECT * from fiberbox where field REGEXP '1740|1938|1940';


查看完整回答
反对 回复 2019-06-24
?
Helenr

TA贡献1780条经验 获得超4个赞

您可以创建内联视图或临时表,用值填充它并发出以下命令:

SELECT  *FROM    fiberbox fJOIN    (
        SELECT '%1740%' AS cond        UNION ALL
        SELECT '%1938%' AS cond        UNION ALL
        SELECT '%1940%' AS cond        ) сON      f.fiberBox LIKE cond

但是,这可以将多个行返回给fiberbox就像'1740, 1938',所以这个查询可以更适合您:

SELECT  *FROM    fiberbox fWHERE   EXISTS
        (
        SELECT  1
        FROM    (
                SELECT '%1740%' AS cond                UNION ALL
                SELECT '%1938%' AS cond                UNION ALL
                SELECT '%1940%' AS cond                ) с
        WHERE   f.fiberbox LIKE cond        )


查看完整回答
反对 回复 2019-06-24
  • 3 回答
  • 0 关注
  • 568 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信