42 votes

SELECT où la valeur de la ligne contient la chaîne MySQL

Comment puis-je sélectionner une ligne dans ma base de données MySQL où la valeur d'une colonne contient 'XcodeDev' par exemple ?

J'ai essayé:

 SELECT * FROM Accounts WHERE Username LIKE '$query'

Mais il ne sélectionne qu'une ligne où la valeur du nom d'utilisateur est exactement la même que celle de la requête.

Que puis-je faire pour obtenir ce que je veux ?

85voto

Matt Ball Points 165937

Utilisez le caractère générique % , qui correspond à n'importe quel nombre de caractères.

 SELECT * FROM Accounts WHERE Username LIKE '%query%'

17voto

jncraton Points 3858

Cela devrait fonctionner :

 SELECT * FROM Accounts WHERE Username LIKE '%$query%'

7voto

Marcelo Points 71

Ma suggestion serait

 $value = $_POST["myfield"];

$Query = Database::Prepare("SELECT * FROM TABLE WHERE MYFIELD LIKE ?");
$Query->Execute(array("%".$value."%"));

3voto

dynamic Points 16778
SELECT * FROM Accounts WHERE Username LIKE '%$query%'

mais ce n'est pas suggéré. utiliser AOP

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X