Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak automatycznie wypełnić nazwę na podstawie imienia i nazwiska w mysql?

Możesz utworzyć wyzwalacz PRZED WSTAWIENIEM i wyzwalacz PRZED UPDATE aby ustawić pole nazwy na wartość CONCAT_WS(' ', imię, drugie_imię, nazwisko) w następujący sposób... ale nie rób tego. To okropny pomysł. W ogóle nie przechowuj kolumny nazwy. Jeśli chcesz wybrać imię, po prostu wybierz CONCAT_WS(' ', imię, drugie_imię, nazwisko) AS full_name.

Zauważ, że CONCAT zwróci null, jeśli którakolwiek z wartości, które łączysz, jest null, więc prawdopodobnie chcesz zamiast tego użyć CONCAT_WS (z separatorem) — jeśli jakakolwiek wartość na liście jest null, po prostu pominie tę wartość i użyje pozostałych.

Twoje wyzwalacze mogą wyglądać mniej więcej tak, jeśli zdecydujesz się to zrobić:

 CREATE TRIGGER name_update BEFORE UPDATE ON member
    FOR EACH ROW
    BEGIN
        SET NEW.name = CONCAT_WS(' ', NEW.first_name, NEW.middle_name, NEW.last_name);
    END;

 CREATE TRIGGER name_insert BEFORE INSERT ON member
    FOR EACH ROW
    BEGIN
        SET NEW.name = CONCAT_WS(' ', NEW.first_name, NEW.middle_name, NEW.last_name);
    END;

Mam nadzieję, że to pomoże.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przekaż wartość zmiennej z JS do PHP

  2. MySQL:SELECT i COUNT w tym samym zapytaniu

  3. MySQL wybierz wiele identyfikatorów w tym samym czasie za pomocą php

  4. Jak zignorować wyrażenia zastępcze dla Flyway?

  5. generuj puste wiersze, nawet jeśli są puste między 2 datami