SELECT DISTINCT(id) vetid,
c.clinic_id,
c.clinic_name,
c.type,
c.city,
c.state,
c.country,
c.lat,
c.lng,
c.zip,
( 3959 * Acos( Cos( Radians(44.977498) ) * Cos( Radians( c.lat ) ) * Cos( Radians( c.lng ) - Radians(-93.406556) ) + Sin( Radians(44.977498) ) * Sin( Radians( c.lat ) ) ) ) AS distance
FROM biah_clinics c
WHERE opt_out != '1'
AND c.country = 'US'
HAVING distance < '10'
ORDER BY distance limit cast('20' AS int);
使用Drupal的db_query,传递给查询的所有参数均作为STRING传递。这给我一个错误。这就是为什么我要在查询中将该参数转换为INT的原因。
所以它最终应该像这样:
limit cast('20' AS int);
limit 20;
但这给了我MySQL错误:
“ SQLSTATE [42000]:语法错误或访问冲突:1064 您的SQL语法错误;检查与您的手册相对应的手册 MySQL服务器版本,可在'CAST('25'AS)附近使用正确的语法 INT)'在第15行“
答案 0 :(得分:0)
我最终使用了drupal的db_query_range(),因为sql限制不起作用,但是使用整数文字。
https://api.drupal.org/api/drupal/includes%21database%21database.inc/function/db_query_range/7.x