表があります。このようなMySQLの検索
CREATE TABLE n_dummy (
id int(10) unsigned NOT NULL AUTO_INCREMENT,
`values` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;
INSERT INTO `n_dummy` (id, `values`) VALUES
(2, '2,10'),
(10, '2,10')
(3, '7,3');
ルック:
id | values
-----------
2 | 2,10
10 | 2,10
3 | 7,3
最初の列がvalues
列から文字列で検索される整数であります。
注:例があまりにも単純すぎて、愚かに見えます。テーブル構造のリファクタリングは方法ではありません。標準の関数とプロシージャを持つSQLクエリのみ。
私は文字列内の整数値を、,
セパレータで連結された整数から検索したいと考えています。
私は、MySQLがIN
オペレータでこれを行うことを期待: SELECT ID n_dummy ID(values
)INから。
結果は2
,10
および3
となります。しかし、MySQLは2
しか返しません。2番目の値と他の値は、IN演算子でstringで検索することはできません。
SQLクエリとプリビルドルーチンを使用して連結文字列で整数を検索するにはどうすればよいですか?
を試してみてください。合意した – Ejaz
質問は膨大な量のサブクエリからなる非常に大きなクエリ(%)のバージョンがあまりにも単純すぎるため、実際のテーブルはinsert文ではなく動的に作成されます。 – userlond
私の質問の主な目的は、動的に作成された文字列をセパレータ文字列(これは 'CONCAT_WS'関数と多くの' CASE'演算子を使って形成され、プレーンなsql-queryではなく)で連結して見つける方法です。 – userlond