Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ดึง User ID จาก Username ใน MySQL

การแยก User ID จากฟังก์ชัน USER() ใน MySQL

ฟังก์ชัน USER() คืนค่าในรูปแบบ username@hostname ใช้ SUBSTRING_INDEX() แยกส่วนที่ต้องการ

ตัวอย่างการใช้งาน

ดู User ปัจจุบัน:

mysql> SELECT USER();
+----------------+
| USER()         |
+----------------+
| root@localhost |
+----------------+

ดึงเฉพาะ Username (ส่วนหน้าของ @)

mysql> SELECT SUBSTRING_INDEX(USER(), '@', 1);
+-------------------------------+
| SUBSTRING_INDEX(USER(), '@', 1) |
+-------------------------------+
| root                          |
+-------------------------------+

ดึงเฉพาะ Hostname (ส่วนหลัง @)

mysql> SELECT SUBSTRING_INDEX(USER(), '@', -1);
+--------------------------------+
| SUBSTRING_INDEX(USER(), '@', -1) |
+--------------------------------+
| localhost                      |
+--------------------------------+

คำอธิบาย SUBSTRING_INDEX(str, delim, count):

  • count > 0 - คืนส่วนก่อน delimiter ครั้งที่ count
  • count < 0 - คืนส่วนหลัง delimiter ครั้งที่ |count| นับจากท้าย

ฟังก์ชันเกี่ยวข้อง:

  • CURRENT_USER() - ผู้ใช้ที่ MySQL ใช้ตรวจสอบสิทธิ์ (อาจต่างจาก USER() ใน DEFINER context)
  • SESSION_USER() - Synonym ของ USER()
  • SYSTEM_USER() - Synonym ของ USER()