2010-05-11 8 views
1

J'ai une assez grande table avec beaucoup de colonnes. Je veux trouver toutes les lignes, avec un mot.comment trouver une valeur dans la rangée?

Bien sûr, je peux écrire quelque chose comme

SELECT * FROM table WHERE 'blablabla' EN col1 OR 'blablabla' EN col2 OU ...

Mais je pense que ce n'est pas meilleure solution =))

UPD Bien sûr, c'est une mauvaise conception de base de données, je le sais. =) Je n'ai pas créé cette table, je dois juste analyser certaines valeurs. ;)

+1

Combien de * lots *? :) –

Répondre

0

Je ne pense pas qu'il existe une meilleure solution. Les bases de données sont conçues pour des données organisées et ne supposent pas que vous effectuerez une recherche sur toutes les lignes.

Vous pouvez concaténer cette requête dans votre langage de programmation avec la détection automatique des noms de champs, mais cela ressemble vraiment à une mauvaise conception de base de données. Si vous rencontrez ce problème, il est possible que le schéma soit défectueux, généralement qu'il ne figure pas dans 1NF.

+0

Eh bien, je suis d'accord avec vous, mais je n'ai tout simplement pas le choix =) – user285070

+0

Très bien, alors votre option est d'obtenir des noms de colonnes avec requête: SHOW COLUMNS FROM table, et avec une boucle faire cette longue requête automatiquement – marianboda

0

Questions connexes