sql >> Database >  >> RDS >> Mysql

Hoe geef ik een lijst met strings door in MySQL Stored Procedure?

Je vriend hier is FIND_IN_SET, verwacht ik. Ik kwam die methode voor het eerst tegen in deze vraag:ook behandeld in deze vraag MYSQL - Opgeslagen procedure met door komma's gescheiden string als variabele invoer

MySQL-documentatie voor FIND_IN_SET is hier http ://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_find-in-set

Dus uw procedure wordt

CREATE DEFINER=`root`@`localhost` 
PROCEDURE `search_equipment`(
    IN equip VARCHAR(100), 
    IN category VARCHAR(255)
)
BEGIN
    SELECT *
    FROM Equipment
    WHERE e_description LIKE CONCAT("%",equip,"%")
    AND FIND_IN_SET(e_type,category)
END

Dit is afhankelijk van het feit dat de categoriereeks een door komma's gescheiden lijst is, en dus wordt uw oproepcode

String type = "I.T. Equipment,Office Supply";

CALL search_equipment('some equipment', type);

(p.s. een typefout gecorrigeerd, in je argumenten had je categoy getypt)



  1. Hoe objecten in een array in een json- of jsonb-waarde te sorteren op een eigenschap van de objecten?

  2. Linkerwaarschuwingen tijdens het bouwen van een applicatie tegen mysql-connector-c/libmysqlclient/mysql C API

  3. Wat is het verschil tussen INNER JOIN, LEFT JOIN, RIGHT JOIN en FULL JOIN?

  4. NodeJS:MySQL roept soms ETIMEDOUT-fout op