此代碼給了我一個錯誤:語法錯誤或接近「選擇」錯誤:語法錯誤或接近「選擇」
SELECT name_one, name_two, jaro(
select name from clients limit 50 as name_one,
select name from clients limit 50 as name_two
);
這工作得很好:
select jaro('aaa','aaa');
但現在我需要從表中獲取數據
此代碼給了我一個錯誤:語法錯誤或接近「選擇」錯誤:語法錯誤或接近「選擇」
SELECT name_one, name_two, jaro(
select name from clients limit 50 as name_one,
select name from clients limit 50 as name_two
);
這工作得很好:
select jaro('aaa','aaa');
但現在我需要從表中獲取數據
這裏是你如何可以將所有對名稱的選擇jaro(name1, name2)
:
SELECT
t1.name as name1
, t2.name as name2
, jaro(t1.name, t2.name) as jaro
FROM
(select name from clients limit 50) t1
CROSS JOIN
(select name from clients limit 50) t2
此查詢使用所謂的自我cross join - 它產生的所有對名字從你的clients
表。
確定您沒有錯誤代碼? – user2983258
@ user2983258除了您所說的「jaro」函數的調用,您所說的工作正常,查詢應該沒問題([請參閱sqlfiddle上的縮短版本](http://www.sqlfiddle.com/#!15/ da6f0/2))。 – dasblinkenlight
@ user2983258你說得對,我在文章中遺漏了一個'FROM'(儘管演示包含了它)。 – dasblinkenlight
我認爲你想要做這樣的事情:
SELECT name, jaro(name, name)
FROM clients limit 50
對不對?或者您想要傳遞給jaro()
的哪些列?
你想要選擇什麼? – dasblinkenlight
問題是'jaro()'想爲每個參數設置一個值,但是你提供了一個包含50個名字的表格。 – Tobberoth
@dasblinkenlight name_1 | name_2 | jaro值 – user2983258