猿问

像IN()这样的MySQL?

像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-社区日志


芜湖不芜
浏览 569回答 3
3回答

慕桂英3389331

A REGEXP 强权效率更高,但你必须对其进行基准测试才能确定。SELECT * from fiberbox where field REGEXP '1740|1938|1940';

Helenr

您可以创建内联视图或临时表,用值填充它并发出以下命令: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        )
随时随地看视频慕课网APP
我要回答