如果子查询的结果为NULL,则整个查询失败

zzl*_*ani 7 php mysql sql select subquery

我有一种情况,我需要从同一个表的有效数据中生成包含随机数据的行

我已经通过php rand($min, $max)函数生成了ID $min = 1$max = [SELECT MAX(ID) FROM patient] - 1

Select

tblFirstName.FirstName,
tblLastName.LastName,
tblBirthDate.BirthDate,
tblLocation.Location

From

(SELECT FirstName FROM patient WHERE ID > 11445 AND FirstName != '' LIMIT 1) AS tblFirstName,
(SELECT LastName FROM patient WHERE ID > 74964 AND LastName != '' LIMIT 1) AS tblLastName,
(SELECT BirthDate FROM patient WHERE ID > 26360 LIMIT 1) AS tblBirthDate,
(SELECT Location FROM patient WHERE ID > 68356 AND Location != '' LIMIT 1) AS tblLocation
Run Code Online (Sandbox Code Playgroud)

现在在ID > 26360上面的查询中,26360是该随机数,>用于避免删除26360的可能性

问题:

如果任何子查询返回没有结果,则完成查询失败并且不返回任何内容.

Sah*_*hah 6

试试这个:

SELECT (SELECT FirstName FROM patient WHERE ID > 11445 AND FirstName != '' LIMIT 1) AS tblFirstName,
         (SELECT LastName FROM patient WHERE ID > 74964 AND LastName != '' LIMIT 1) AS tblLastName,
         (SELECT BirthDate FROM patient WHERE ID > 26360 LIMIT 1) AS tblBirthDate,
         (SELECT Location FROM patient WHERE ID > 68356 AND Location != '' LIMIT 1) AS tblLocation
Run Code Online (Sandbox Code Playgroud)