Ваш вопрос был довольно ясен (не знаю, почему другие ответили тем, что вы специально хотели исключить), и тем, что я потратил более часа, пытаясь найти ...
Эта ссылка была наиболее полезной
http://www.timrosenblatt.com/blog/2008/03/21/insert-where-not-exists/
На MySQL 5.1.35 ...
mysql> CREATE TABLE testDupeSyntax (name varchar(10), place varchar(20) );
Query OK, 0 rows affected (0.13 sec)
mysql>
mysql> INSERT INTO testDupeSyntax SELECT 'mango1', 'mango2' FROM DUAL WHERE NOT
EXISTS( SELECT name FROM testDupeSyntax WHERE name='mango1' LIMIT 1 );
Query OK, 1 row affected (0.06 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM testDupeSyntax;
+--------+--------+
| name | place |
+--------+--------+
| mango1 | mango2 |
+--------+--------+
1 row in set (0.00 sec)
mysql> INSERT INTO testDupeSyntax SELECT 'mango1', 'mango2' FROM DUAL WHERE NOT
EXISTS( SELECT name FROM testDupeSyntax WHERE name='mango1' LIMIT 1 );
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM testDupeSyntax;
+--------+--------+
| name | place |
+--------+--------+
| mango1 | mango2 |
+--------+--------+
1 row in set (0.00 sec)
mysql> INSERT INTO testDupeSyntax SELECT 'mango1', 'mango2' FROM DUAL WHERE NOT
EXISTS( SELECT name FROM testDupeSyntax WHERE name='mango1' AND place='mango2' LIMIT 1 );
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM testDupeSyntax;
+--------+--------+
| name | place |
+--------+--------+
| mango1 | mango2 |
+--------+--------+
1 row in set (0.00 sec)
mysql> INSERT INTO testDupeSyntax SELECT 'mango1', 'mango2' FROM DUAL WHERE NOT
EXISTS( SELECT name FROM testDupeSyntax WHERE name='mango1' AND place='mango3' LIMIT 1 );
Query OK, 1 row affected (0.05 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM testDupeSyntax;
+--------+--------+
| name | place |
+--------+--------+
| mango1 | mango2 |
| mango1 | mango2 |
+--------+--------+
2 rows in set (0.00 sec)
mysql>