sql,从所选数据中插入随机数据,
我在插入过程中从另一个表中获取数据,但是我只需要随机选择其中一个数据,现在我只能添加这些数据中的第一个。
MySql数据库。
$sql="INSERT INTO dal (dal.tarih,dal.tarihsonuc,
dal.fiyat,dal.kullaniciadi,dal.isim,dal.fal_konusu,
dal.cinsiyet,dal.medeni_hal,dal.is_durumu,dal.giris_id)
SELECT '2019-07-03',
'2019-07-04',
5,
'user',
'user2',
10,
0,
0,
1,
yorumlar2.id
FROM yorumlar2
WHERE yorumlar2.fiyat=".$_GET['fiyat']." and
yorumlar2.cinsiyet=".$_GET['cinsiyet']." and
yorumlar2.fal_konusu=".$_GET['fal_konusu']." and
yorumlar2.medeni_hal=".$_GET['medeni_hal']." and
yorumlar2.is_durumu=".$_GET['is_durumu']." and
yorumlar2.id NOT IN(SELECT dal.giris_id FROM dal
WHERE dal.kullaniciadi='".$_GET['kullaniciadi']."'
and dal.fiyat=".$_GET['fiyat']." and
dal.cinsiyet=".$_GET['cinsiyet']."
and dal.fal_konusu=".$_GET['fal_konusu']."
and dal.medeni_hal=".$_GET['medeni_hal']."
and dal.is_durumu=".$_GET['is_durumu'].") limit 1";
我希望“ yorumlar2.id”随机出现。 随机只能装1件。
答案 0 :(得分:0)
您可以在现有限制之前将以下内容添加到查询中,以将获取内容的顺序随机化,从而给您留下一个随机行。
ORDER BY RAND()
如果您的表包含大量行,或者您更关心性能,那么您可能想在where子句中尝试使用此方法:
AND yorumlar2.id >= RAND() * (SELECT MAX(id) FROM yorumlar2)
,并将其作为您的ORDER BY / LIMIT:
ORDER BY yorumlar2.id LIMIT 1
这将在您的最高ID下计算一个随机数,将查询限制在该ID之上的行,然后为您提供第一个,从而给您一个随机行。
您可以详细了解here。