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\u查询,传递给查询的所有参数都作为字符串传递。这给了我一个错误。这就是为什么在我的查询中,我要将该参数转换为int。
所以结果应该是这样的:
limit cast('20' AS int);
limit 20;
但这给了我mysql的一个错误:
“sqlstate[42000]:语法错误或访问冲突:1064您的sql语法有错误;在第15行的“cast('25'as int)”附近,检查与mysql服务器版本对应的手册,以获得正确的语法
1条答案
按热度按时间cbjzeqam1#
我最终使用了drupal的db\u query\u range(),因为sql限制不起作用,而是使用整数文本。
https://api.drupal.org/api/drupal/includes%21database%21database.inc/function/db_query_range/7.x