2012-02-01 13 views
5

Jestem nowym użytkownikiem MySQL, więc może to być głupie pytanie, ale nie znalazłem konkretnej odpowiedzi po przeszukaniu i kopaniu tutaj SO.Uzyskaj identyfikator użytkownika (tylko) od MySQL

Wszystko, co próbuję zrobić, to uzyskać identyfikator użytkownika i tylko identyfikator użytkownika wywołującego użytkownika wstawki lub aktualizacji w danej tabeli. Nie pytam o pomoc z wyzwalaczem w tym pytaniu, więc nie martw się o to.

SELECT user() 

Daje: [email protected][IP Address]

SELECT current_user() 

Daje: [email protected]%

niewielki problem: chcę tylko user

Moje pytanie:

Czy podchodzę do tego w niewłaściwy sposób?

Czy istnieje bardziej przejrzysty, czy bardziej czytelny sposób, aby uzyskać tylko user zamiast używać czegoś takiego jak substr(user(),1,instr(user(),'@')-1)? Napisałem kilka wyzwalaczy w Oracle, gdzie mogłem po prostu użyć wartości USER, aby uzyskać to, czego potrzebuję.

góry dzięki

+3

Użytkownik mysql jest rzeczywiście to, co dostajesz - to zawsze złożony z użytkownikiem @gospodarz. "user @ example.com" to zupełnie inne konto niż 'user @ %', chociaż część' user' jest stała. –

Odpowiedz

4

strona podręcznika says:

SELECT SUBSTRING_INDEX(USER(),'@',1); 
+0

To niesamowite, ile mogę przeszukać, ale tęsknię za czymś takim. Właśnie tego potrzebuję, dzięki! – Dan

+0

@Niloct, pokonaj mnie to =) –

+0

Nie ma za co! @Dan! @Ben, to było impulsywne: D – Niloct

Powiązane problemy