对mysql的空表进行查询,返回后得到的是什么值呢?

来源:百度知道 编辑:UC知道 时间:2024/07/02 04:49:56
比如说有一个学生表A,一个老师表B,现在要注册一个新用户,得先查询两个表中是否已经存在该用户名!若两个表中原先都有记录,我先判断我写的SQL
"select * from A,B where (A.name='$name' or B.teach_name='$name')"返回值,若空则插入,运行良好。。。但是当其中任意一张表原先没有一条记录(即空表,不是没有符合记录的表)的时候,返回的值貌似都是为空!也就是假如A表是空的时候,B表中已经有一条叫user1的记录,我即使再插入一条叫user1的记录,程序照样运行。。。

我建议你不要把两个表这样揉在一起写,你这样写会使A和B是一种join的关系,而逻辑上这两个表应该是分开check的

判断是否可以插入的时候我觉得可以分开写
(select * from A where A.name='$name')
union
(select * from B where B.teach_name='name')

你试一下呢

mysql_query只检查语法的正确性。不管有没有值 你的SQL语句没错就不会返回假