430 Stimmen

Wie kann ich in einer Spalte mit dem Platzhalter LIKE (ohne Berücksichtigung der Groß-/Kleinschreibung) suchen?

Ich habe mich etwas umgesehen und nicht gefunden, was ich gesucht habe, also geht es los.

SELECT * FROM trees WHERE trees.`title` LIKE  '%elm%'

Das funktioniert gut, aber nicht, wenn der Baum Elm oder ELM usw. heißt.

Wie kann ich die Groß- und Kleinschreibung in SQL für diese Platzhaltersuche nicht berücksichtigen?

Ich verwende MySQL 5 und Apache.

17voto

Dave Doga Oz Punkte 1159

So etwas mache ich auch.

Sie erhalten die Werte in Kleinbuchstaben und MySQL erledigt den Rest

    $string = $_GET['string'];
    mysqli_query($con,"SELECT *
                       FROM table_name
                       WHERE LOWER(column_name)
                       LIKE LOWER('%$string%')");

Und für MySQL PDO Alternative:

        $string = $_GET['string'];
        $q = "SELECT *
              FROM table_name
              WHERE LOWER(column_name)
              LIKE LOWER(?);";
        $query = $dbConnection->prepare($q);
        $query->bindValue(1, "%$string%", PDO::PARAM_STR);
        $query->execute();

11voto

ABS zarzis Punkte 151

Utiliser ILIKE

SELECT * FROM trees WHERE trees.`title` ILIKE '%elm%';

Bei mir hat es funktioniert!

11voto

Marko Bonaci Punkte 5456

Nicht-binäre String-Vergleiche (einschließlich LIKE ) sind Groß- und Kleinschreibung wird nicht berücksichtigt standardmäßig in MySql: https://dev.mysql.com/doc/refman/en/case-sensitivity.html

8voto

cgupta Punkte 199

Ich denke, dass diese Abfrage eine Suche ohne Berücksichtigung der Groß- und Kleinschreibung durchführen wird:

SELECT * FROM trees WHERE trees.`title` ILIKE '%elm%';

6voto

Lopofsky Punkte 397

Das müssen Sie nicht ALTER jede Tabelle. Verwenden Sie einfach die folgenden Abfragen, die vor der eigentlichen SELECT Abfrage, dass Sie den Platzhalter verwenden möchten:

    set names `utf8`;
    SET COLLATION_CONNECTION=utf8_general_ci;
    SET CHARACTER_SET_CLIENT=utf8;
    SET CHARACTER_SET_RESULTS=utf8;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X