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

Vyberte VŠECHNA pole, která obsahují pouze VELKÁ písmena

Možná budete chtít použít kolování rozlišující malá a velká písmena . Věřím, že výchozí nastavení nerozlišuje malá a velká písmena. Příklad:

CREATE TABLE my_table (
   id int,
   name varchar(50)
) CHARACTER SET latin1 COLLATE latin1_general_cs;

INSERT INTO my_table VALUES (1, 'SomeThing');
INSERT INTO my_table VALUES (2, 'something');
INSERT INTO my_table VALUES (3, 'SOMETHING');
INSERT INTO my_table VALUES (4, 'SOME4THING');

Potom:

SELECT * FROM my_table WHERE name REGEXP '^[A-Z]+$';
+------+-----------+
| id   | name      |
+------+-----------+
|    3 | SOMETHING |
+------+-----------+
1 row in set (0.00 sec)

Pokud nechcete pro celou tabulku používat řazení rozlišující malá a velká písmena, můžete také použít COLLATE klauzule, jak je @kchau navrženo v druhé odpovědi .

Zkusme to s tabulkou pomocí řazení bez rozlišení malých a velkých písmen:

CREATE TABLE my_table (
   id int,
   name varchar(50)
) CHARACTER SET latin1 COLLATE latin1_general_ci;

INSERT INTO my_table VALUES (1, 'SomeThing');
INSERT INTO my_table VALUES (2, 'something');
INSERT INTO my_table VALUES (3, 'SOMETHING');
INSERT INTO my_table VALUES (4, 'SOME4THING');

Tohle nebude moc dobře fungovat:

SELECT * FROM my_table WHERE name REGEXP '^[A-Z]+$';
+------+-----------+
| id   | name      |
+------+-----------+
|    1 | SomeThing |
|    2 | something |
|    3 | SOMETHING |
+------+-----------+
3 rows in set (0.00 sec)

Ale můžeme použít COLLATE klauzule pro řazení pole názvu do řazení rozlišující malá a velká písmena:

SELECT * FROM my_table WHERE (name COLLATE latin1_general_cs) REGEXP '^[A-Z]+$';
+------+-----------+
| id   | name      |
+------+-----------+
|    3 | SOMETHING |
+------+-----------+
1 row in set (0.00 sec)


  1. WooCommerce serializované pole meta hodnot v tabulce wp_postmeta

  2. Jak nakonfigurovat SELinux pro systémy založené na MySQL (MySQL/MariaDB Replication + Galera)

  3. 3 způsoby, jak vygenerovat skript CREATE TABLE z existující tabulky v SQLite

  4. Instalace R12.2.6 EBS krok za krokem na Virtual Box část -2