2017-05-06 2 views
7

Ich habe einen sehr speziellen Fall, in dem Benutzer ihr eigenes JSON-Objekt für Aufzeichnungen speichern können. Der Grund ist, dass jeder Benutzer spezielle Objekte und Datenstrukturen hat, die Teil seiner normalen Aufzeichnung sind.Generiere MySQL JSON_EXTRACT Bedingung mit Benutzersuchparameter

Ich möchte Benutzer über meine API nach Objekten in der MySQL DB suchen lassen. Ich verwende die JSON_EXTRACT(json_field, "$ ...") ... Syntax oder kurz die -> Syntax.

Benutzer sollten in der Lage sein, Abfragen wie folgt zu tätigen: get /service/resource?a>3 AND b.c="dog" OR b.d IS NOT NULL wo alle Parameter (a, b) auf dem Json-Feld suchen.

Zuerst dachte ich über die Verwendung einer Liste von Parametern nach, aber wie sollte ich in der Lage sein, den Operator AND, OR, IS NOT NULL zu bekommen?

Wie würden Sie solch eine Suchfunktion für eine RESTful API entwerfen?

+0

Verwenden Sie Backslashes ('\\')? –

+0

Rick Ich verstehe nicht, was du meinst? Kannst du deinen Kommentar etwas ausführlicher erklären? – user1482309

+0

'get \ service \ resource' –

Antwort

1

Google verwendet "+" zum Erstellen ihrer Abfragen. Google-Abfrage "a UND B oder nicht c" -> google.com/q=a+AND+b+oder+NOT+c

Ich werde diese Approuch versuchen.

+0

'+' wird in URLs anstelle von Leerzeichen verwendet. (Es ist nicht nur Google.) –