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

Dotaz MySQL:Porovnejte hodnotu oddělenou čárkou se sloupcem obsahujícím řetězec oddělený čárkami

Lze to provést s regexpem, jak řekl @1000111, ale se složitějším regexpem. Podívejte se například na toto:

(^|,)(13|15)(,|$)

Toto nebude odpovídat 13 ze 135 nebo 1 ze 13 a tak dále. Například pro číslo 13 to bude odpovídat následujícím řetězcům:

1,13,2
13,1,2
1,13
13,2
13

Ale nebude odpovídat těmto

1,135,2
131,2
1,113

A toto je dotaz:

SET @search = '13,15';

SELECT *
FROM test
WHERE interests REGEXP CONCAT('(^|,)(', REPLACE(@search, ',', '|'), ')(,|$)')


  1. Jak zajistit, aby vaše databáze MySQL nebo MariaDB byla vysoce dostupná na AWS a Google Cloud

  2. Existuje rozdíl ve výkonu mezi CTE, dílčím dotazem, dočasnou tabulkou nebo proměnnou tabulky?

  3. jak předat proměnnou ze skriptu shellu do sqlplus

  4. Jak používat OBJECT_ID() na mezidatabázových objektech na serveru SQL Server