2016-07-01 12 views
0

Ich möchte nur wissen, ob diese Querys Groß- und Kleinschreibung beachten oder nicht. Sind das die gleichen Fragen?MariaDB/MySQL-Abfragen sind case sensitive?

SELECT * FROM Users WHERE login="john"; 
SELECT * FROM Users WHERE login="John"; 
SELECT * FROM Users WHERE login="JOHN"; 
SELECT * FROM Users WHERE login="jOHn"; 

Ich habe das versucht, auf meiner Konsole und alle von ihnen gearbeitet, aber ich will davon sein, ob ich Hibernate oder irgendetwas anderes verwenden würde.

Danke!

+0

Wenn es nur einen Weg gäbe, könnten wir es herausfinden. – Strawberry

Antwort

1

Nach the MySQL docs,

Der Standardzeichensatz und Sortierung sind latin1 und latin1_swedish_ci, so nichtbinärer String-Vergleiche sind case unempfindlich standardmäßig

Was den zweiten Teil von Ihnen in Frage - this SO answer zeigt Ihnen, wie Sie konfigurieren, damit die Suchenden die Groß-/Kleinschreibung beachten.

+0

Könnte eine gute Idee sein, verwenden Sie Funktionen wie: SELECT * FROM Benutzer WHERE Login = LOWER ("John")? – Ommadawn

+0

In neueren Versionen von MySQL wurden die Standardeinstellungen in "utf8" und "utf8_general_ci" geändert. In beiden Fällen bedeutet "_ci" "case (und accent) insensitive". In Ihrer Anfrage gilt dies für die Spalte "Login". –

+0

Wenn Sie die Sortierung richtig eingestellt haben, sollten Sie sich nicht mit 'LOWER()' befassen. –

0

Von MariaDB docs, hängt es von OS ab. Bei Windows wird nicht zwischen Groß- und Kleinschreibung unterschieden. Für Linux, Database, Tabelle, Tabellenaliasnamen und Triggernamen wird die Groß-/Kleinschreibung der Systeme berücksichtigt, während Index-, Spalten-, Spaltenaliasnamen, gespeicherte Routinen und Ereignisnamen nicht zwischen Groß- und Kleinschreibung unterschieden werden.