sql >> Database >  >> RDS >> Mysql

Selecteer ALLE velden die alleen HOOFDLETTERS bevatten

Misschien wilt u een hoofdlettergevoelige sortering gebruiken . Ik denk dat de standaard niet hoofdlettergevoelig is. Voorbeeld:

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');

Dan:

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

Als u geen hoofdlettergevoelige sortering voor de hele tabel wilt gebruiken, kunt u ook de COLLATE clausule als @kchau gesuggereerd in het andere antwoord .

Laten we proberen met een tabel met een hoofdletterongevoelige sortering:

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');

Dit zal niet zo goed werken:

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

Maar we kunnen de COLLATE . gebruiken clausule om het naamveld te sorteren in een hoofdlettergevoelige sortering:

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. MySQL-gebruikersrechten op gedeelde servers

  2. Hoe een postgres-database naar sqlite te converteren?

  3. codeigniter - database:hoe meerdere tabellen bij te werken met een enkele update-query

  4. Verschil tussen schema / database in MySQL