脚本宝典收集整理的这篇文章主要介绍了php – MySql查询作者和书籍计数,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
book_master_id book_name author_id 1 Book 1 22,23 2 Book 2 23 3 Book 3 24 4 Book 4 23,24
作者表
author_id author_name 22 Jim 23 Roger 24 Andrew
现在,如果我想将结果作为作者姓名,并按书写计数的降序排列.即
Roger(3) Andrew(2) Jim(1)
BOOK_MASTER book_master_id book_name 1 Book 1 2 Book 2 3 Book 3 4 Book 4 AUTHOR author_id author_name 22 Jim 23 Roger 24 Andrew BOOK_AUTHOR book_master_id author_id 1 22 1 23 2 23 3 24 4 23 4 24
SELECT a.author_name,COUNT(*) as number_of_books From author a JOIN book_author ba ON a.id = ba.author_id group by a.author_name ORDER BY number_of_books DESC
编写一个脚本,将当前书籍表的author_id逗号分隔列表移动到新的author_book表中应该是相当简单的,下面的内容可能会起作用:
<?PHP $query = "SELECT book_master_id,author_id From books"; $result = MysqL_query($query); while ($row = MysqL_fetch_row($result)) { $values = array(); foreach (explode(',',$row['author_id']) as $authorId) { $values[] = "(" . $row['book_master_id'] . "," . $authorId . ")"; } $query = "INSERT IGNORE INTO book_author (book_master_id,author_id) VALUES "; $query .= implode(',$values); MysqL_query($query); }
请注意,我没有测试这段代码,你应该首先在测试数据库上试一试,看看它是否真的能够完成它应该做的事情.此外,如果您有大量数据,则此脚本可能需要一些时间才能执行.最后,也许有一个SQL查询可以做到这一点,但这是第一个想到的解决方案.
以上是脚本宝典为你收集整理的php – MySql查询作者和书籍计数全部内容,希望文章能够帮你解决php – MySql查询作者和书籍计数所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。