Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zaznacz WSZYSTKIE pola zawierające tylko WIELKIE litery

Możesz użyć porównania z uwzględnieniem wielkości liter . Uważam, że wartość domyślna nie uwzględnia wielkości liter. Przykład:

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

Następnie:

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

Jeśli nie chcesz używać sortowania z rozróżnianiem wielkości liter dla całej tabeli, możesz również użyć COLLATE klauzula jako @kchau sugerowana w drugiej odpowiedzi .

Spróbujmy z tabelą używając sortowania bez rozróżniania wielkości liter:

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

To nie zadziała zbyt dobrze:

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 możemy użyć COLLATE klauzula porównywania pola nazwy do sortowania z uwzględnieniem wielkości liter:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. php mysql Grupuj według, aby uzyskać najnowszy rekord, a nie pierwszy rekord

  2. PHP Wyszukiwanie wielu danych wejściowych

  3. Skuteczne monitorowanie MySQL za pomocą pulpitów nawigacyjnych SCUMM:część pierwsza

  4. Dynamiczne nazwy tabel w funkcji procedury składowanej

  5. Zastąp tabele MySQL za pomocą AWS Glue