今天在问答版块看到一位易友的提问,

首先很快想到可以用sql语句rand函数来解决,于是贴上了代码:

但是经过提问者测试确实是随机的,然而却是固定的三条文章,刷新不会变化

经过本地测试,的确是sql语句只执行了一次,于是便想办法解决。这时候想到了利用随机数函数,每次刷新产生不同的随机数传送到sql语句里,这样就可以实现每次刷新都执行sql语句。
改进了需要引入随机数保证每次刷新重新执行sql
{eyou:assign name="keywords" value="$eyou.field.keywords"}
{eyou:sql sql="select COUNT(*) as total from ey_archives"}
{eyou:assign name="rand" value=":rand(0$field.total)"}
{/eyou:sql}
{eyou:sql sql="select aid from ey_archives where title like '%$keywords%' order by rand() limit $rand,3"}
{eyou:arcview aid="$field.aid" id="field2"}
<a href="{$field2.arcurl}">{$field2.title}</a>
{/eyou:arcview}
{/eyou:sql}
注意中文逗号改为英文