展开全部
|mysql> select * from test_book1;
+------+-----------+--------------------------------+
|e68a84e8a2ad3231313335323631343130323136353331333335303534 id | name | data |
+------+-----------+--------------------------------+
| 1 | 测试数据1 | 测试CSV文件中,有逗号 |
| 2 | 测试数据2 | 测试CSV文件中有"双引号" |
| 3 | 测试数据3 | 测试CSV文件中,有逗号和"双引号" |
| 4 | 测试数据4 | 普通数据 |
+------+-----------+--------------------------------+
4 rows in set (0.01 sec)
最终用户 希望在插入数据库表以前,先判断数据是否已存在
mysql> INSERT INTO test_book1
-> SELECT 1, 'TEST', 'ABC' FROM dual
-> WHERE NOT EXISTS( SELECT 1 FROM test_book1 WHERE id = 1);
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> INSERT INTO test_book1
-> SELECT 5, 'TEST', 'ABC' FROM dual
-> WHERE NOT EXISTS( SELECT 1 FROM test_book1 WHERE id = 5);
Query OK, 1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> select * from test_book1;
+------+-----------+--------------------------------+
| id | name | data |
+------+-----------+--------------------------------+
| 1 | 测试数据1 | 测试CSV文件中,有逗号 |
| 2 | 测试数据2 | 测试CSV文件中有"双引号" |
| 3 | 测试数据3 | 测试CSV文件中,有逗号和"双引号" |
| 4 | 测试数据4 | 普通数据 |
| 5 | TEST | ABC |
+------+-----------+--------------------------------+
5 rows in set (0.00 sec)
对于你这个情况, 就是简单的执行
INSERT INTO tb_Table ( 列名 )
SELECT 数据 FROM dual
WHERE NOT EXISTS( SELECT 1 FROM tb_Table WHERE namg = ... and pass = ... );
这样只需要执行一次 SQL 语句。
如果数据存在, 那么不会插入数据。
如果数据不存在,那么插入数据。