如何將下面的mysql語句變成預存程序或者儲存函數呢?

來源:互聯網
上載者:User
下面是我使用mysql計算距離的一個sql語句,這個sql太複雜了,我想使用mysql 的預存程序或者儲存函數來簡化


$select = 't.*,(ACOS(SIN((' . $this->latitude . '* 3.1415) / 180 ) *SIN((travel_user_status.latitude * 3.1415) / 180 ) +COS((' . $this->latitude . '* 3.1415) / 180 ) * COS((travel_user_status.latitude * 3.1415) / 180 ) * COS((' . $this->longitude . '* 3.1415) / 180 - (travel_user_status.longitude * 3.1415)/180 )) * 6378.137) as distance'; $join = 'LEFT JOIN travel_user_status ON travel_user_status.userId=t.userId';

最後想變成這樣:

 $select = 't.*,distance($this->latitude,$this->longitude)  as distance';            $join = 'LEFT JOIN travel_user_status ON travel_user_status.userId=t.userId';

這個distance就像是一個mysql函數可以直接調用

請問我該如何做呢??

回複內容:

下面是我使用mysql計算距離的一個sql語句,這個sql太複雜了,我想使用mysql 的預存程序或者儲存函數來簡化


$select = 't.*,(ACOS(SIN((' . $this->latitude . '* 3.1415) / 180 ) *SIN((travel_user_status.latitude * 3.1415) / 180 ) +COS((' . $this->latitude . '* 3.1415) / 180 ) * COS((travel_user_status.latitude * 3.1415) / 180 ) * COS((' . $this->longitude . '* 3.1415) / 180 - (travel_user_status.longitude * 3.1415)/180 )) * 6378.137) as distance'; $join = 'LEFT JOIN travel_user_status ON travel_user_status.userId=t.userId';

最後想變成這樣:

 $select = 't.*,distance($this->latitude,$this->longitude)  as distance';            $join = 'LEFT JOIN travel_user_status ON travel_user_status.userId=t.userId';

這個distance就像是一個mysql函數可以直接調用

請問我該如何做呢??

自行查閱手冊啊:http://dev.mysql.com/doc/refman/5.0/en/create-function-udf.html

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.