Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL - Използване на резултати от съхранени процедури за дефиниране на оператор IN

Какъв тип връщане има вашата текуща съхранена процедура? Говорите за „списък“, така че ТЕКСТ?

Може би има по-лесен начин, но едно нещо, което можете да направите (в друга съхранена процедура), е да създадете друга заявка.

За да направим това, трябва да заобиколим две ограничения на MySQL:a) За да изпълним динамичен SQL вътре в съхранена процедура, тя трябва да бъде подготвен оператор. b) Подготвени отчети могат да бъдат създадени само от потребителски променливи. Така че пълният SQL е:

SET @the_list = myStoredProc();
SET @the_query = CONCAT('SELECT * FROM myTable WHERE columnName IN (' , @the_list , ')');
PREPARE the_statement FROM @the_query;
EXECUTE the_statement;

Ако говорите за връщане на набор от резултати от съхранена рутина и след това да го използвате като таблица, това не е възможно. Трябва да направите временна таблица, за да заобиколите това ограничение .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Конструиране на оператори UPDATE с помощта на асоциативни масиви в PHP

  2. Изключване на единични кавички в PHP при вмъкване в MySQL

  3. Къде е MySQL JDBC jar файл в Ubuntu?

  4. как да върнете избран mysql като масив от масиви в json с помощта на php

  5. Динамично попълнено падащо меню; Грешка при връщане на $_POST