Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में विशिष्ट यूज़र के लॉगिन समय को कैसे अपडेट करें?

MySQL में किसी विशिष्ट यूज़र के लॉगिन समय को अपडेट करने के लिए, UPDATE स्टेटमेंट के साथ WHERE क्लॉज़ का उपयोग करें। यदि एक ही यूज़र के एकाधिक रिकॉर्ड हैं, तो ORDER BY ... LIMIT 1 से नवीनतम रिकॉर्ड अपडेट करें।

उदाहरण: Carol का लॉगिन समय अपडेट करना

डेमो टेबल बनाएं:

mysql> CREATE TABLE DemoTable1911 (
    UserId INT,
    UserLoggedInTime TIME,
    UserName VARCHAR(20)
);

डेटा इन्सर्ट करें:

mysql> INSERT INTO DemoTable1911 VALUES
(100, '07:32:00', 'Chris'),
(101, '05:00:00', 'David'),
(102, '06:10:20', 'Mike'),
(103, '03:55:00', 'Carol');

अपडेट से पहले:

+--------+------------------+----------+
| UserId | UserLoggedInTime | UserName |
+--------+------------------+----------+
| 100    | 07:32:00         | Chris    |
| 101    | 05:00:00         | David    |
| 102    | 06:10:20         | Mike     |
| 103    | 03:55:00         | Carol    |
+--------+------------------+----------+

Carol का लॉगिन समय अपडेट करें (नवीनतम रिकॉर्ड):

mysql> UPDATE DemoTable1911
SET UserLoggedInTime = '12:30:45'
WHERE UserName = 'Carol'
ORDER BY UserId DESC
LIMIT 1;

अपडेट के बाद:

+--------+------------------+----------+
| UserId | UserLoggedInTime | UserName |
+--------+------------------+----------+
| 100    | 07:32:00         | Chris    |
| 101    | 05:00:00         | David    |
| 102    | 06:10:20         | Mike     |
| 103    | 12:30:45         | Carol    |
+--------+------------------+----------+

ORDER BY ... LIMIT 1 क्यों?

  • यदि एक ही यूज़र के एकाधिक लॉगिन रिकॉर्ड हैं
  • ORDER BY UserId DESC नवीनतम रिकॉर्ड पहले लाता है
  • LIMIT 1 केवल पहली (नवीनतम) पंक्ति अपडेट करता है
  • बिना इसके, उस यूज़र के सभी रिकॉर्ड अपडेट हो जाएंगे

बेहतर स्कीमा डिज़ाइन

उत्पादन के लिए, अलग लॉग टेबल बेहतर है:

CREATE TABLE user_logins (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    login_time DATETIME DEFAULT CURRENT_TIMESTAMP,
    logout_time DATETIME NULL,
    INDEX idx_user_time (user_id, login_time)
);

तब नवीनतम लॉगिन अपडेट करने के लिए:

UPDATE user_logins
SET logout_time = NOW()
WHERE user_id = 103
  AND logout_time IS NULL
ORDER BY login_time DESC
LIMIT 1;

सुरक्षा नोट

एप्लिकेशन कोड में हमेशा पैरामीटराइज़्ड क्वेरी (PreparedStatement) उपयोग करें SQL इंजेक्शन रोकने के लिए।

  1. MySQL में अलग यूजर के रूप में लॉगिन कैसे करें? MySQL में अलग यूजर के रूप में लॉगिन कैसे करें?

    कमांड लाइन से अलग यूजर के रूप में MySQL लॉगिन मौजूदा यूजर के रूप में लॉगिन करने के लिए: mysql -u yourUsername -p Enter दबाने के बाद पासवर्ड दर्ज करें। नया यूजर बनाना और लॉगिन करना 1. यूजर बनाएं CREATE USER John@localhost IDENTIFIED BY john123456; 2. यूजर वेरीफाई करें SELECT user FROM mysql.user

  1. - MySQL टेबल में विशिष्ट स्ट्रिंग कैसे खोजें?

    सटीक मिलान के लिए बराबर ऑपरेटर का उपयोग करें: select * from yourTableName where yourColumnName = yourValue; उदाहरण टेबल बनाएं: mysql> create table DemoTable ( -> FirstName varchar(100), -> LastName varchar(100) -> ); Query OK, 0 rows affected (0.70 sec) रिकॉर्ड डालें: mysq

  1. - MySQL टेबल को बैच अपडेट कैसे करें?

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> BreakfastTime time -> ); Query OK, 0 rows affected (0.59 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable values(7:30:45); Query OK, 1 row affected (0.19 sec) mysql> insert i