/ / Verwenden von SQL wie für Musterabfrage - SQL, Datenbank, SQL-like

Verwenden von SQL wie für Musterabfrage - SQL, Datenbank, SQL-like

Ich habe eine PHP-Funktion, die einen Parameter namens $ letter akzeptiert und ich möchte den Standardwert des Parameters auf ein Muster setzen, das "eine beliebige Zahl oder ein beliebiges Symbol" ist. Wie kann ich das machen?

Dies ist meine Abfrage übrigens.

select ID from $wpdb->posts where post_title LIKE "".$letter."%

Ich habe versucht, bei Wordpress Stackexchange zu posten, und sie haben mir gesagt, ich soll es hier posten, da es sich um eine SQL / allgemeine Programmierfrage handelt, die spezifisch für WordPress ist.

Vielen Dank! Antworten sehr geschätzt :)

Antworten:

0 für die Antwort № 1

Um nur Zahlen oder Buchstaben zu vergleichen (ich bin mir nicht sicher, was genau Sie mit Symbolen meinen), können Sie den RLIKE-Operator in MySQL verwenden:

SELECT ... WHERE post_title RLIKE "^[A-Za-z0-9]"

Das bedeutet standardmäßig $letter wäre [A-Za-z0-9] - das sind alle Buchstaben von a bis z (beide Fälle) und Zahlen von 0-9. Wenn Sie bestimmte Symbole benötigen, können Sie sie zur Liste hinzufügen (aber - muss zuerst oder zuletzt sein, da es sonst eine besondere Bedeutung der Reichweite hat). Das ^ Das Zeichen gibt an, dass es am Anfang der Zeichenfolge steht. Du wirst also etwas brauchen wie:

"select ID from $wpdb->posts where post_title RLIKE "^".$letter."%""

Natürlich muss ich Sie vor SQL-Injection-Angriffen warnen, wenn Sie Ihre Abfrage so erstellen, ohne die Eingabe zu bereinigen (stellen Sie sicher, dass es keine hat) " (Apostroph) darin.

Bearbeiten

Um einen Titel zu finden, der mit einer Nummer beginnt, verwenden Sie einfach [0-9] - Das heißt, es wird eine Ziffer von 0 bis 9 übereinstimmen