我遇到了這個問題,我希望它是可能的.
我有乙個來自wordpress的表,用於儲存後元資料,因此無法更改列和字段資料(輕鬆).
因此,表結構
post_id
meta_key
meta_value
元鍵儲存欄位名稱和meta_value,即該字段的值.
我需要根據帖子id對這些進行分組,這樣我就可以在兩個字段之間進行比較.我嘗試過各種各樣的!!
所以資料如下:
post_id meta_key meta_value
1 _wp_field0 10
1 _wp_field1 5
1 _wp_field2 9
1 _wp_field3 "matt's post"
1 _wp_field3 155
2 _wp_field0 51
2 _wp_field1 9
2 _wp_field2 18
2 _wp_field3 "james' post"
2 _wp_field3 199
我做了乙個返回的group_concat
post_id concat
1 10,5,9,matt's post,155
2 51,9,18,james' post,199
這是我最接近我想要的東西.但我不知道如何將其拆分.我有一系列我要比較的整數(欄位1和2).
我需要上面字串中的第二個和第三個數字.我可以在sql中做些什麼來獲取這些嗎?然後我想對它做一些數**算.它們基本上是漂浮物,儲存經度和緯度,我想比較和獲得距離….
我在考慮擁有臨時表?我只需要引用這兩個數字.
也許我可以通過分隔符拆分字串?
我已經沒想完了. (ps)我也嘗試編寫自己的函式(如下所示),但這次伺服器崩潰了幾次!!
drop function get_lat;
delimiter $$
create function get_lat(in_post_id int)
returns float
reads sql data
begin
declare latitude float;
select meta_value into latitude from wp_postmeta where post_id = in_post_id and meta_key = 'field1';
return (latitude);
end $$
delimiter;
drop function get_lon;
delimiter $$
create function get_lon(in_post_id int)
returns float
reads sql data
begin
declare longitude float;
select meta_value into longitude from wp_postmeta where post_id = in_post_id and meta_key = 'field2';
return (longitude);
end $$
delimiter;
select post_id,get_lat(post_id)as latitude, get_lon(post_id) as longitude from wp_postmeta group by post_id;
php連線mysql位址 PHP連線mysql
php 5 及以上版本建議使用以下方式連線 mysql mysqli extension i 意為 improved pdo php data objects 在 php 早起版本中我們使用 mysql 擴充套件。但該擴充套件在 2012 年開始不建議使用。我是該用 mysqli 還是 pdo?如果...
php連線mysql原生 PHP連線MySQL
一.mysql客戶端下,運算元據庫的步驟 第一步 連線到mysql資料庫伺服器 mysql.exe hlocalhost uroot proot 第二步 選擇要操作的資料庫 use db name 第三步 設定當前環境的顯示字符集 set names gbk 在mysql客戶端只能使用gbk,別的編...
mysql與php的連線 PHP 連線mysql
php 連線mysql mysqlhost localhost mysqluser root mysqlpass mysqldata mydata connect mysql connect mysqlhost,mysqluser,mysqlpass or die 錯誤 mysql error my...