Post
#1
|
|
|
Administrator serwera Grupa: Developerzy Postów: 521 Pomógł: 13 Dołączył: 2.04.2004 Skąd: 52°24' N 16°56' E Ostrzeżenie: (0%)
|
Zastanawiam się, jak byście rozwiązali sprawę tworzenia składni dla klauzuli WHERE i w jaki sposób takową składnię sparsować??
Ja wpadłem na taką składnię:
gdzie przecinek oznacza domyślnie operator logiczny AND i coś takiego:
gdzie '+' oznacza AND, a '-' oznacza OR. No i jeszcze trzeba doliczyć operatory porównania: '=', '!=', '<', '>', '<=', '>=' i może jakieś wyrażenia regularne proste, np. '%', '^', '$', gdzie '%' oznacza, że nie liczy się umiejscowienie treści w wartości kolumny, '^' oznacza, że treść musi się znaleźć na początku wartości kolumny, a '$' oznacza, że treść musi się znaleźć na końcu wartości kolumny. Możnaby też nie używać nawiasów i zastosować same AND i OR w jawnej postaci, ale to by trochę utrudniło sprawę parsowania. A odnośnie parsowania, to głównym problemem jest dokładne określenie stringu jako treści, bo może być przecież taka sytuacja: colname='content' i za content podstawiamy, np. "jakaś_treść' colname='content'". No i jeszcze sposób w jaki wyciągniemy wszystkie dane: zdecydowanie najłatwiej z czegoś takiego:
No i oczywiście trzeba ustandaryzować w jakiś sposób znaki nowego wiersza i linii: czyli musimy wszystkie takowe znaki zamienić na jeden rodzaj, np.
no i potem je jakoś wyeliminować, za pomocą jakiegoś bardzo rzadko spotykanego zestawu znaków lub znaku, np.
Może ktoś ma jakieś ciekawe rozwiązanie i się nim zechce podzielić, lub też potrafi sparsować zapytanie bez nawiasów z jawnymi operatorami logicznymi: AND i OR ? |
|
|
|
Zbłąkany Klauzula WHERE w SQL 4.06.2005, 14:44:58
SongoQ Zapytanie bez nawiasow - nie. Nieraz to jest wymag... 4.06.2005, 16:38:55
Zbłąkany Bez takich dodatków, bo to skomplikowałoby sprawe ... 4.06.2005, 17:02:30
SongoQ Ja bym to tak rozwiazal spawdzasz czy jest WHERE j... 4.06.2005, 17:14:25 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 12:19 |