MySQL #1243 Unknown dichiarazione preparata gestore (stmt) data di ESEGUIRE

Sto seguendo questo tutorial sul mio installata la versione di MySQL, ma non è la lancio mi da un errore:

SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'MAX(IF(property_name = ''',
      property_name,
      ''', value, NULL)) AS ',
      property_name
    )
  ) INTO @sql
FROM
  properties;
SET @sql = CONCAT('SELECT item_id, ', @sql, ' FROM properties GROUP BY item_id');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

Sto incollando su SQL editor in phpMyAdmin.

Ho seguito il suggerimento. Senza errori, ma il risultato è il seguente:

SELECT item_id
,MAX(IF(property_name = 'color', value, NULL)) AS color
,MAX(IF(property_name = 'size', value, NULL)) AS size
,MAX(IF(property_name = 'weight', value, NULL)) AS weight 
FROM properties GROUP BY item_id
invece di eseguire le ultime tre righe, di cambiare con SELECT @sql e posta il risultato qui in modo che possiamo sapere dove è l’errore.
Aggiorno la questione.
Che cosa si desidera che il risultato di apparire come in realtà?
eseguirà la query che ho indicato nell’aggiornamento. L’uscita di “@sql” è la stringa.
Onorevole, hai risolto il tuo problema?

OriginaleL’autore Mr A | 2013-04-18

3 risposte

  1. 3

    Se si dispone di accesso a MySQL da riga di comando, credo che troverete il vostro codice SQL è bene (purché @sql non è uguale a NULL) e il problema è con phpMyAdmin. Un’altra idea è quella di inserire il codice in una stored procedure e quindi CALL la procedura.

    OriginaleL’autore udog

  2. 2

    È necessario rimuovere il DEALLOCATE PREPARE stmt; dalla query fino a dopo l’esecuzione della query.

    DEALLOCATE annulla la dichiarazione prima che abbia la possibilità di correre.

    OriginaleL’autore Dustin

  3. 1

    Provare questo in MySQL Workbench. Ho avuto lo stesso problema in phpMyAdmin e ho provato a Banco e funziona benissimo.

    grazie, utilizzando sequel pro hanno lo stesso problema con phpMyAdmin ma funziona benissimo sul Banco di lavoro

    OriginaleL’autore Jis Jose

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *