sql >> Databáze >  >> RDS >> Mysql

Může Mysql rozdělit sloupec?

Zdá se, že to funguje:

substring_index ( substring_index ( context,',',1 ), ',', -1) 
substring_index ( substring_index ( context,',',2 ), ',', -1)
substring_index ( substring_index ( context,',',3 ), ',', -1)
substring_index ( substring_index ( context,',',4 ), ',', -1)

znamená to 1. hodnotu, 2., 3. atd.

Vysvětlení:

Vnitřní substring_index vrátí prvních n hodnot oddělených čárkou. Pokud je tedy váš původní řetězec "34,7,23,89", substring_index( context,',', 3) vrátí "34,7,23".
Vnější substring_index přebírá hodnotu vrácenou vnitřním substring_index a -1 umožňuje vzít poslední hodnotu. Takže dostanete "23" z "34,7,23".
Místo -1 pokud zadáte -2 , dostanete "7,23", protože to vzalo poslední dvě hodnoty.

Příklad:

select * from MyTable where substring_index(substring_index(prices,',',1),',',-1)=3382;

Zde prices je název sloupce v MyTable .



  1. Sloupec neexistuje?

  2. Agregáty a dělení

  3. Jak funguje LOG2() v MariaDB

  4. Jak programově vytvořit propojenou tabulku ODBC se zobrazením serveru SQL a zajistit, aby byla upravitelná?