表格:
$sql = "CREATE TABLE $playlist_table (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(100) NOT NULL,
`options` text DEFAULT NULL,
PRIMARY KEY (`id`)
) $charset_collate;";
dbDelta( $sql );
$playlist_id = array(3) { [0]=> string(2) "13" [1]=> string(2) "11" [2]=> string(2) "25" }
$wpdb->get_results($wpdb->prepare("SELECT id, title, options FROM {$playlist_table} WHERE id IN (%d,%d,%d)", $playlist_id), ARRAY_A);
返回结果:
播放列表id 11、13、25
我怎样才能按我指定的顺序退货呢(13,11,25)
1条答案
按热度按时间szqfcxe21#
首先:您的查询没有
order by
子句,所以结果的顺序实际上是未定义的。您当前看到的任何顺序都不能保证在连续执行查询时保持一致。所以你需要一个
order by
条款。在mysql中,可以方便地使用字符串函数field()
为了这个。这需要传递值列表两次: