Ich habe bereits einen Artikel über die Groß-/Kleinschreibung von MySQL-Tabellen geschrieben. Tatsächlich wird bei den in Feldern in MySQL gespeicherten Inhalten nicht zwischen Groß- und Kleinschreibung unterschieden.
Möchten Sie überprüfen:
Die Groß-/Kleinschreibungsregeln von MySQL für Datenbanknamen, Tabellennamen, Spaltennamen und Aliase unter Linux lauten wie folgt:
1. Datenbankname und Tabellenname Bei Tabellenaliasen wird die Groß- und Kleinschreibung strikt beachtet.
4. Beim Feldinhalt wird standardmäßig die Groß-/Kleinschreibung nicht beachtet.01 Ein BeispielEinfaches Beispiel:
CREATE TABLE `tb_user` ( `id` BIGINT (20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '用户id', `username` VARCHAR (50) NOT NULL COMMENT '用户名', PRIMARY KEY (`id`) ) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '用户表'; INSERT INTO `u2s`.`tb_user` (`id`, `username`) VALUES ('1', 'user'); INSERT INTO `u2s`.`tb_user` (`id`, `username`) VALUES ('2', 'User'); INSERT INTO `u2s`.`tb_user` (`id`, `username`) VALUES ('3', 'USER');
mysql> SELECT username from tb_user where username = 'user'; +----------+ | username | +----------+ | user | | User | | USER | +----------+ 3 rows in setUm dieses Beispiel kurz zu veranschaulichen, wird beim Feldinhalt standardmäßig die Groß-/Kleinschreibung nicht beachtet.
user
02 Lösung
** Da beim Feldinhalt standardmäßig nicht zwischen Groß- und Kleinschreibung unterschieden wird, wird die Groß-/Kleinschreibung nicht beachtet. **Die Lösung besteht also darin, Überprüfungsregeln für Feldinhalte hinzuzufügen.
Fügen Sie das BINARY
-Schlüsselwort
mysql> select * from tb_user where BINARY username ='user'; +----+----------+ | id | username | +----+----------+ | 1 | user | +----+----------+ 1 row in setzur Abfrage-SQL hinzu. Diese Methode ist relativ einfach Um die Felder zu unterscheiden, die abgefragt werden müssen, fügen Sie vorher Schlüsselwörter hinzu. Diese Methode weist auch Nachteile auf. Jedes Mal, wenn Sie eine Abfrage schreiben, müssen Sie auf das Hinzufügen von Schlüsselwörtern achten, und es muss möglicherweise viel Code geändert werden.
BINARY
Begrenzen Sie beim Erstellen der Tabelle
CREATE TABLE `tb_user1` ( `id` BIGINT (20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '用户id', `username` VARCHAR (50) BINARY NOT NULL COMMENT '用户名', PRIMARY KEY (`id`) ) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '用户表'; mysql> show create table tb_user1; tb_user1 | CREATE TABLE `tb_user1` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户id', `username` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '用户名', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表' 1 row in set
oder verwenden Sie CREATE TABLE `tb_user2` (
`id` BIGINT (20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '用户id',
`username` VARCHAR (50) NOT NULL COMMENT '用户名',
`info` VARCHAR (100) NOT NULL COMMENT '详情描述',
PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COLLATE=utf8_bin COMMENT = '用户表';
mysql> show create table tb_user2;
tb_user2 | CREATE TABLE `tb_user2` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户id',
`username` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '用户名',
`info` varchar(100) COLLATE utf8_bin NOT NULL COMMENT '详情描述',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='用户表'
Durch die Verwendung von
zu den Feldern hinzu.
03 ZusammenfassungNGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
COLLATE utf8_bin
Die Groß- und Kleinschreibung von Feldwerten wird durch die Sortierregeln von MySQL gesteuert. Wenn es um Korrekturleseregeln geht, müssen wir über Zeichensätze sprechen. Ein Zeichensatz ist ein Satz von Symbolen und Kodierungen, und eine Sortierregel ist ein Satz von Regeln zum Vergleichen von Zeichen innerhalb eines Zeichensatzes. Im Allgemeinen beginnt eine Sortierregel mit dem Namen des zugehörigen Zeichensatzes, normalerweise einschließlich eines Sprachnamens, und endet mit _ci (ohne Berücksichtigung der Groß-/Kleinschreibung), _cs (ohne Berücksichtigung der Groß-/Kleinschreibung) oder _bin (binär).
1) utf8_bin: utf8_bin speichert jedes Zeichen in der Zeichenfolge als Binärdaten, wobei die Groß-/Kleinschreibung beachtet wird.
2) utf8_general_ci: utf8_genera_ci unterscheidet nicht zwischen Groß- und Kleinschreibung, ci ist die Abkürzung für case insensitive, also case insensitive.
3) utf8_general_cs: Bei utf8_general_cs wird zwischen Groß- und Kleinschreibung unterschieden. cs ist die Abkürzung für case sensitive, also zwischen Groß- und Kleinschreibung.
Hinweis: Die Version 5.7 meines Computers unterstützt den Zeichensatz utf8_general_cs nicht und beim Erstellen wurde ein Fehler gemeldet.
Durch den Inhalt des vorherigen Artikels und dieses Artikels hat jeder ein gewisses Verständnis für die Groß- und Kleinschreibung von MySQL. In der tatsächlichen Entwicklung ist es am besten, Kleinbuchstaben für Bibliotheks- und Tabellennamen zu verwenden. Bitte beachten Sie das Problem der Groß- und Kleinschreibung von Feldspeicherinhalten. Und machen Sie die Konfiguration von MySQL in der lokalen Entwicklungsumgebung mit der Konfiguration von MySQL auf dem Server konsistent, um zu verhindern, dass aufgrund inkonsistenter Umgebungen seltsame Probleme auftreten.
Sind Sie während der Entwicklung auf seltsame Probleme gestoßen? Gerne können Sie eine Nachricht hinterlassen und teilen.
Weitere technische Artikel zum Thema MySQL finden Sie in der SpalteMySQL-Tutorial.
Das obige ist der detaillierte Inhalt vonWussten Sie, dass bei in MySQL gespeicherten Feldern die Groß-/Kleinschreibung nicht beachtet wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!