Struktura skryptu zapytania SQL

Przewiń w dół, aby zobaczyć strukturę skryptu zapytania SQL. Możesz wygenerować plik skryptu dla każdego użytkownika bazy danych Autoreply, który jest w stanie wysyłać wiadomości SMS, jeśli będą postępować zgodnie ze skryptem. Plik działa z każdą przychodzącą wiadomością i wybiera wiadomości wychodzące zgodnie z filtrem.

Wprowadzenie

Spójrz na plik skryptu. Możesz zobaczyć, że jest podzielony na sekcje oddzielone pustymi liniami (Rysunek 1). Możesz napisać tyle sekcji, ile chcesz, bez maksymalnego limitu. Sekcje są czytane sekwencyjnie, a pierwsza sekcja, która pasuje do przychodzącej wiadomości SMS, zostanie użyta do utworzenia odpowiedzi.

Pierwsza linia każdej sekcji to warunek filtrowania, a następne jedna lub więcej instrukcji SQL to akcja. Instrukcje SELECT SQL mogą zwrócić jedną lub więcej wiadomości odpowiedzi. Jeśli warunek filtrowania pasuje do danych przychodzącej wiadomości, wywołuje wykonanie instrukcji aż do napotkania pustej linii. W tym przypadku nie sprawdza innych sekcji.

możesz zobaczyć warunki filtrowania i instrukcje SQL w tym przykładzie
Rysunek 1 - Możesz zobaczyć warunki filtrowania i instrukcje SQL w tym przykładzie

Warunek

Każda sekcja zaczyna się od warunku składającego się z pojedynczej linii podzielonej na dwie części (Rysunek 2)

pierwsza linia każdej sekcji nazywa się: warunek
Rysunek 2 - Pierwsza linia każdej sekcji nazywa się: warunek

Pierwsza część to selektor celu dopasowania, pojedynczy znak który określa, która część przychodzącej wiadomości powinna być filtrowana (Rysunek 3). FONT style="font-size:15px;">Możesz wybrać znak selektora celu dopasowania z następujących opcji:

# Opcje warunku:
#     n - jeśli numer telefonu nadawcy pasuje do wzorca
#     m - jeśli tekst wiadomości pasuje do wzorca
#     k - jeśli słowo kluczowe pasuje do wzorca. (Słowo kluczowe to pierwsze słowo
#         wiadomości. Słowo kluczowe jest konwertowane na wielkie litery)
Rysunek 3 - Selektory celu dopasowania

Druga część to wzorzec dopasowania, który jest filtrem znaków (Rysunek 4).

Te przykłady wzorców dopasowania działają na celu 'm' wiadomości tekstowej:
m.* - pasuje do dowolnej wiadomości tekstowej
m^abc.* - pasuje, jeśli wiadomość tekstowa zaczyna się od 'abc' lub 'ABC'
m.*abc.* - pasuje, jeśli wiadomość tekstowa zawiera 'abc' lub 'ABC'
Rysunek 4 - Przykłady wzorców dopasowania

Tutaj możesz znaleźć samouczek wyrażeń regularnych dla dostępnych wzorców dopasowania.

Akcja

Każdy filtr warunku jest następowany przez akcję, która składa się z instrukcji SQL.

Możesz wysyłać wiadomości SMS tylko za pomocą zapytań SELECT SQL, ale możesz również uruchamiać instrukcje INSERT i UPDATE. Pamiętaj, że pierwszy parametr zestawu wyników SELECT to odbiorca wiadomości do wysłania, podczas gdy drugi parametr to sama wiadomość. Na Rysunku 5 możesz zobaczyć kilka przykładów.


k^RED
INSERT INTO log (sender,message) VALUES ('$sender','$messagedata')
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red'

k^BLUE
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='blue'

k.*
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default'
Rysunek 5 - Przykłady instrukcji SQL, gdzie odbiorcą jest '$sender'

Następujące słowa są zastępowane w instrukcjach SQL:
SłowaWartość
$originatorNumer telefonu, z którego została wysłana wiadomość.
$sender=$originator ($sender to inna nazwa dla $originator.)
$recipientNumer telefonu, na który została wysłana wiadomość.
$receiver=$recipient ($receiver to inna nazwa dla $recipient.)
$messagedataTekst wiadomości.
$keywordPierwsze słowo w wiadomości. To słowo nazywa się słowem kluczowym.
$afterPozostały tekst po słowie kluczowym.
$senttimeZnacznik czasu pokazujący, kiedy wiadomość została wysłana.
$receivedtimeZnacznik czasu pokazujący, kiedy wiadomość została odebrana.
$messagetypeTyp wiadomości, w większości przypadków 'SMS:TEXT'.
$idUnikalny ciąg znaków. Identyfikuje każdą wiadomość w Ozeki SMS Gateway.
$operatorNazwa dostawcy usług. Odbiera wiadomość w Ozeki SMS Gateway.
$1Pierwsze słowo w wiadomości.
$2Drugie słowo w wiadomości.
$3Trzecie słowo w wiadomości, itd...

Każda instrukcja SQL jest wykonywana linia po linii, aż interpreter dotrze do pustej linii, gdzie ostatecznie się zatrzymuje.

(Wskazówka: Możesz uzyskać treść wiadomości odpowiedzi tylko za pomocą instrukcji SELECT.)

Odpowiedź

Zestaw wyników instrukcji SELECT SQL zawiera wiadomości do przesłania lub odpowiedzi. Liczba wierszy w zestawie wyników określa liczbę wiadomości do wysłania. (Rysunek 6)

Zestaw wyników może zawierać następujące parametry:
recipient - Pierwsza kolumna zestawu wyników (Wymagane)
messageData - Druga kolumna zestawu wyników (Wymagane)
messageType - Trzecia kolumna zestawu wyników (Opcjonalne)
sender - Czwarta kolumna zestawu wyników (Opcjonalne)
operatorNames - Piąta kolumna zestawu wyników (Opcjonalne)

Rysunek 6 - Użytkownik bazy danych Autoreply Ozeki 10 SMS Gateway wyśle wiadomości SMS z wyników.

Przykład

Spójrz na przykład, jak filtrować pierwsze słowo w każdej przychodzącej wiadomości i jak wykonywać oddzielne działania dla każdego z nich. Działanie zależy od tego, czy słowo to 'RED', 'BLUE' czy inne. Wielkie i małe litery są traktowane jednakowo. (Rysunek 7)

k^RED
INSERT INTO log (sender,message) VALUES ('$sender','$messagedata')
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red'
#Pierwszy filtr sprawdza, czy słowem kluczowym było 'RED'.
#Jeśli tak, INSERT-uje wiadomość do tabeli 'log'
#i SELECT-uje 'Red is a good colour.' jako wiadomość odpowiedzi.
#Jeśli nie, przechodzi do następnego filtra.

k^BLUE
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='blue'
#Drugi filtr sprawdza, czy słowem kluczowym było 'BLUE'.
#Jeśli tak, SELECT-uje 'Blue is not the best option.' jako wiadomość odpowiedzi.
#Jeśli nie, przechodzi do następnego filtra.

k.*
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default'
#Trzeci filtr zaakceptuje każde inne słowo kluczowe.
#SELECT-uje 'There is no data for this keyword.' jako wiadomość odpowiedzi.
Rysunek 7 - Przykładowy skrypt zapytania SQL

Spójrz na tabele SQL na Rysunku 8 i 9, aby przeanalizować następujący przykład:

id          keyword                        msg
----------  ------------------------------ -------------------------------------
 1          default                        There is no data for this keyword.
 2          red                            Red is a good colour.
 3          blue                           Blue is not the best option.
 
Rysunek 8 - Tabela 'autoreplymessage'

id          sender                         message
----------  ------------------------------ -------------------------------------
 1          +3620123456                    red Hello Autoreply Database User
 2          +3670654321                    red Good day to you Recipient
Rysunek 9 - Tabela 'log' dla przychodzącej wiadomości

More information