J'ai une requête MySQL que je construis en php mais que je veux déplacer dans une procédure stockée. Toute la requête est bonne pour passer dans le sproc, sauf pour une complication: En php, en fonction d'une condition, j'ajoute un "HAVING
......" comme dernière ligne. Est-il possible de faire une condition, un cas, etc. pour construire une requête d'une manière similaire?Affichage conditionnel d'une partie d'une requête dans une procédure stockée MySQL
Par exemple:
PROCEDURE `GeyMyItems`(
IN query VARCHAR(100)
)
BEGIN
SELECT * FROM my_table a
JOIN another_table b ON a.id = b.id
WHERE my_column = 'this_value'
IF (query = 'abc')
HAVING a.my_value = '123';
END$$
DELIMITER ;
Je sais la syntaxe du IF
est probablement faux, mais je suis juste montrer ce que je suis en train de faire. Y a-t-il une meilleure manière de faire cela?
Le seul repli auquel je peux penser est peut-être de prendre soin de la partie HAVING
en php. Ne l'incluez pas du tout dans le SQL, et quand je construis mon objet/tableau, je peux simplement filtrer là dans ma boucle while
. Mais j'aimerais voir comment je peux utiliser une procédure stockée pour quelque chose comme ça, voire pas du tout?
Oui, qui fait sens total. Construire les requêtes à travers des variables. Ensuite, exécutez-le à la fin. – KickingLettuce