Angular+NodeJS+MySQL学习应用:MySQL删除操作异常排查
Hey there! Let's break down why your DELETE query is throwing an error and get it fixed. From the snippet you shared, there are a few common issues that could be causing the exception:
1. You’re using current_timestamp incorrectly
current_timestamp is a built-in MySQL function that returns the current server time—not the timestamp stored in your table. If your table has a timestamp column (like created_at, task_timestamp, etc.), you need to use that actual column name instead. Using the function here will compare the current time to your fixed value, which almost certainly won’t match any rows, and might even throw an error if MySQL can’t resolve the comparison properly.
2. LIKE is unnecessary for exact date/time matches
Your timestamp value is an exact string ("2018-02-10 16:19:12"), so using LIKE is overkill. For DATETIME/TIMESTAMP columns, use the equality operator (=) instead—it’s more efficient and avoids implicit string conversion quirks that could break the match.
3. Your email value is truncated
The snippet shows email like "admin@gmail.c..."—that incomplete email string will either cause a syntax error (if the closing quote is missing) or fail to match any rows in your table. Make sure you use the full, correct email address enclosed in single quotes (the standard for string literals in SQL).
Fixed Example Query
Assuming your table’s timestamp column is named task_timestamp and the full email is admin@gmail.com, here’s the corrected DELETE statement:
DELETE FROM taskstable WHERE task_timestamp = '2018-02-10 16:19:12' AND email = 'admin@gmail.com';
Pro Debugging Tip
Before running any DELETE query, test your WHERE condition with a SELECT first to confirm it targets exactly the rows you want to remove:
SELECT * FROM taskstable WHERE task_timestamp = '2018-02-10 16:19:12' AND email = 'admin@gmail.com';
If this returns the correct rows, your DELETE will work as expected. If not, double-check your column names, timestamp format, and email spelling.
Also, be sure to check the exact error message MySQL returns—it’ll tell you whether it’s a syntax error, unknown column, or no rows matched, which is the fastest way to pinpoint the issue.
内容的提问来源于stack exchange,提问作者lolu

