Il y a une table:recherche Mysql dans la chaîne concatinated
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');
ressembler à ceci:
id | values
-----------
2 | 2,10
10 | 2,10
3 | 7,3
La première colonne est l'entier à rechercher dans la chaîne de values
colonne .
Remarque: L'exemple est trop simplifié et semble stupide. La structure de la table de refactoring n'est pas le chemin. Seule requête sql avec fonctions et procédures standard.
Je souhaite rechercher une valeur entière dans une chaîne, concaténée à partir d'entiers avec le séparateur ,
.
Je MySQL attend pour ce faire avec IN
opérateur: SELECT id DE n_dummy WHERE id IN (values
); Le résultat serait 2
, 10
et 3
. Mais MySQL renvoie seulement 2
, la deuxième et d'autres valeurs ne sont pas consultables avec l'opérateur IN avec une chaîne. Comment rechercher un entier dans une chaîne concaténée à l'aide de routines sql-query et prebuild?
fait que, dans la base de données relationnelle, 'semble stupid'; D'accord. – Ejaz
La question est une version trop simplifiée de la très grande requête (%), qui consiste en un énorme nombre de sous-requêtes, donc les tables réelles sont créées dynamiquement, pas avec une instruction d'insertion. – userlond
Le but principal de la question pour moi est de savoir, comment trouver des entiers créés dynamiquement concaténés avec séparateur chaîne (il est formé via la fonction 'CONCAT_WS' et de nombreux opérateurs' CASE', pas sql-query plain) – userlond