2012-04-02 112 views
2

在我的mysql數據庫中有2個表。 1.A 2.B Mysql varchar比較

在表A中列是ID(VARCHAR)主鍵,位置(VARCHAR),日期(日期) 表B列是ID(VARCHAR)的外鍵,活動(VARCHAR) ,成本(int)

我使用搜索框,其中如果兩個表id字段匹配,然後結果顯示。 當我使用數字它工作正常,但是當我使用字母數字值然後它不起作用。

所以PLZ幫我 在此先感謝。

+1

去nee方式更多的信息比,但首先想到的是,你可能不會引用字符串。 – Corbin 2012-04-02 09:43:08

+0

顯示您的比較代碼 – Chibuzo 2012-04-02 09:44:50

+0

定義「不起作用」。 – 2012-04-02 09:59:56

回答

0

這不適合你嗎?

SELECT * 
from A 
inner join B on B.id = A.id 
WHERE A.id = 'whatyoursearchingfor' 
1

首先:使用varchar作爲id可能是一個壞主意。如果您想要將某些信息存儲在您現在存儲在id字段中的位置/活動中,則可能需要考慮添加另一個字段,使id成爲整數並僅比較整數。

這就是說,它應該只用了以下工作:

SELECT * 
FROM A, B 
WHERE A.id = B.id AND A.fieldthatwassearched = '".$value_from_php."' ; 

和:

SELECT * 
FROM A, B 
WHERE A.id = B.id AND A.id = '".$value_from_php."' 

不是「‘和’」圍繞價值,這些都是重要的,因爲你需要發送一個字符串,所以它需要引用;)

+0

值$ value_from_php可能容易受到SQL注入的影響。改爲使用mysql_real_escape_string($ value_from_php),或者在示例中不要使用PHP變量。 – Martin 2012-04-02 10:11:53

+0

沒錯,這是搜索查詢的最基本的例子。您應該研究SQL注入等問題,Martin的解決方案應該解決大部分問題:) – DJWLaan 2012-04-02 14:19:01