php - Mengapa pernyataan sql tidak boleh mengekstrak medan ID dan tajuk, tetapi hanya medan tajuk?
扔个三星炸死你
扔个三星炸死你 2017-06-10 09:47:31
0
2
626

SQL statement

    public function get_radom_article(){
            $table1 = $this->get_table('article') ;
            $sql = 'SELECT * 
    FROM `'.$table1 .'` AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `'.$table1 .'`)-(SELECT MIN(id) FROM `'.$table1 .'`))+(SELECT MIN(id) FROM `'.$table1 .'`)) AS id) AS t2 
    WHERE t1.id >= t2.id 
    ORDER BY t1.id LIMIT 10';
     return $this->query_all($sql);
        
    }

Pengeluaran

                <?php foreach($this->radom_articles AS $key => $val) { ?>
                <li><a  href="article/<?php echo $val['id']; ?>" title="<?php echo $val['title']; ?>"><?php echo  $val['title']; ?></a></li>
                <?php } ?>

Tajuk boleh diekstrak tetapi ID tidak boleh diekstrak?
Tiada ralat dalam tajuk data yang diekstrak ini, tetapi mengapa semua ID adalah sama, iaitu ID medan tajuk yang sepadan tidak diekstrak? Apa yang salah dengan SQL? Di bawah bimbingan tuan-tuan semua

Medan tajuk ialah tajuk dan medan id ialah id

扔个三星炸死你
扔个三星炸死你

membalas semua(2)
淡淡烟草味

Lihatlah*换成t1.*

过去多啦不再A梦

Pertama: Jika t1.id >= t2.id dalam pertanyaan jadual penyertaan anda, data pendua akan muncul, walaupun algoritma anda nampaknya kurang berkemungkinan berbuat demikian.
Kedua: Set hasil mengandungi berbilang medan id. Medan id terakhir selepas pilihan dalam hasil yang dikeluarkan oleh PHP sudah tentu, pengoptimum pertanyaan juga boleh mengubah susunan lajur selepas pilihan.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan