我可能失去了一些東西顯著,但我敢肯定你不能做你希望什麼....
編輯
假設你想效仿由您定製的SELECT語法所描述的功能,你可以嘗試:
/*
set @options to regex sequence group of distinct values of sheets.dept_id
note: for completeness, each value should be properly escaped per regex rules.
*/
SET @options=CONCAT('[[:<:]](',(
SELECT GROUP_CONCAT(did SEPARATOR '|')
FROM (SELECT DISTINCT dept_id AS did FROM sheets) AS sheetsa
),')[[:>:]]');
SELECT * FROM groups WHERE name REGEXP @options;
,我使用下面的測試成功:
CREATE TABLE t1 (a int, b int);
INSERT INTO t1 (a,b) VALUES (0,0),(0,1),(1,0),(1,1);
SET @options=CONCAT('[[:<:]](', (
SELECT GROUP_CONCAT(tb SEPARATOR '|')
FROM (SELECT DISTINCT b AS tb FROM t1) AS ta
), ')[[:>:]]');
SELECT @options; /* '[[:<:]](0|1)[[:>:]]' */
SELECT '0' REGEXP @options; /* 1 = true */
SELECT '1' REGEXP @options; /* 1 = true */
SELECT '2' REGEXP @options; /* 0 = false */
SELECT ' a ba 1 c d ' REGEXP @options; /* 1 = true */
SELECT ' a ba1c d' REGEXP @options; /* 0 = false */
SELECT ' a ba 1c d' REGEXP @options; /* 0 = false */
SELECT ' a ba1 c d' REGEXP @options; /* 0 = false */
SELECT ' a ba 2 c d' REGEXP @options; /* 0 = false */
注意:由於LIKE的參數不支持替換,您將無法對LIKE執行相同的操作。 – 2011-06-14 20:54:32