Filtra le voci visualizzate su SELEZIONA in MariaDB


0

Ho voci in una certa tabella mariadb con valori in una colonna denominata codecome:

ABC-SI-GR-0
ABC-SI-NAV-0
ABC-GO-NAV-0
ABC-SI-NAV-3P
ABC-GO-GR-0
ABC-GO-GR-3P
...

... e così via

ora voglio SELEZIONARE tutte le voci da quella tabella che hanno SIcome parte della stringa nella codecolonna. Ho provato

SELECT * WHERE code LIKE %SI% FROM [table]

che non ha funzionato.

controlla il manuale corrispondente alla versione del tuo server MariaDB per la sintassi corretta da usare vicino a 'DOVE il codice COME% SI% DA [tabella]' alla riga 1

Qualcuno può indicarmi un tipo di sintassi più efficace per tale?

Risposte:


0

Mancano le virgolette intorno alla likeclausola. Cambia la tua selezione in:

SELECT * FROM [table] WHERE code LIKE '%SI%'

Inoltre, utilizzare al rlikeposto di likepuò essere più veloce poiché utilizza una regex rispetto al globbing. select * where code rlike 'SI' from tablename
Ivanivan,

1
Forse, ma rlikenon è sicuro multi-byte che potrebbe causare altri problemi.
Dave,

grazie per il puntatore @Dave. l'aggiunta di virgolette (di qualsiasi tipo. provato "...", '...', `...`) sfortunatamente provoca lo stesso errore di prima. LIKE o RLIKE non fa adifference in questo senso. Altre idee?
venerdì

Modifica la tua domanda con la dichiarazione esatta che stai utilizzando ora e l'errore completo che stai ricevendo.
Dave,

SELECT * FROM [table] WHERE code LIKE '%SI%'funziona però
vrms
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.