[SQL ] mysql REGEXP 方法

作者: kiey (煉)   2016-07-18 16:39:43
內容/問題描述:
小弟現在有個問題想請問一下各位先進
有張 table
table name : projects
projects.code 如下:
11&22
11&22|22&33
92&71|22&92|55&33
我有18組號碼,分別要去找出這欄位裡面有符合的
例如號碼是 11 , 22 , 34
這樣的話只要是 11&22 or 22&34 or 11&34 都符合
「|」 是分隔符號,被它區分的只要有一組符合就可以了
例如:
11&22 : O
22&99 : X
11&22|22&33 : O
92&71|22&92|55&33 : X
我的寫法是這樣:
$aCodes = array(11, 22, 33, 44, 55,
66, 77, 88, 99, 10,
21, 31, 41, 51, 61, 71, 81, 91);
< php code 省略 >
mysql:
UPDATE `projects`
SET `updatetime`='".date("Y-m-d H:i:s")
WHERE `projects.type` like '1'
AND ( 1=2
OR REGEXP "^.*11&22*$"
OR REGEXP "^.*11&33*$"
OR REGEXP "^.*11&44*$"
...
OR REGEXP "^.*22&11*$"
OR REGEXP "^.*22&33*$"
OR REGEXP "^.*22&44*$"
...
OR REGEXP "^.*33&11*$"
OR REGEXP "^.*33&22*$"
OR REGEXP "^.*33&44*$"
...
< 重覆 18*17 次>
)
小弟覺得這個方法非常的笨,但是又想不出更好的方法
所以想請問一下各位先進是否有更好的方法
謝謝
作者: iFEELing (ing)   2016-07-18 21:52:00
like '11|22|33&11|22|33' &左右兩邊各有一個中即可?這個好像比較適合 REGEXP 板

Links booklink

Contact Us: admin [ a t ] ucptt.com