2011-02-04 34 views
0

下面的代碼將顯示我的數據庫中的表中的John,Steve和Pat。我希望它只顯示約翰和史蒂夫。如何從我的數據庫中的表中選擇[somename]

$result = @mysql_query("SELECT * FROM name"); 
$line = @mysql_fetch_array($result); 
$users = $line[user]; 

echo "$users"; 
+0

你永遠不要執行`@ mysql_query`!很高興看到SQL錯誤,所以你可以修復它們。 – 2011-02-04 18:19:17

+1

你不應該再使用mysql擴展。你應該使用mysqli或PDO。 – Erik 2011-02-04 18:20:20

+0

在使用它之前,您應該閱讀SQL。這被稱爲`WHERE`子句。 – 2011-02-04 18:21:40

回答

2

您需要在SQL查詢中使用WHERE子句。

SELECT * FROM name WHERE somecolumn=somevalue; 
2

對於這個奇怪的例子,你可以改變你的查詢:

select * from name where name in ('Steve','John') 

select * from name where name <> 'Pat' 
2

我不知道這是否是你想要的,但你可以過濾通過匹配名稱中的SQL正是如此列表:

SELECT * FROM name WHERE name IN ('John', 'Steve') 

這假定您的表格被稱爲name,並且包含用戶名稱的列也被稱爲name

我不得不想知道你在這裏想達到什麼,還有一些其他有用的信息是你想從用戶記錄中獲得的嗎?還是應該限制基於超出名稱的其他標準返回的用戶?

0
$result = @mysql_query("SELECT * FROM name LIMIT 2"); 
3

SELECT * FROM name WHERE [column_name] = 'john' OR [column_name] = 'Steve'

這就是你想要的?有幾個注意事項:

  1. 你需要與實際列的名稱,以取代[column_name]被比較,因爲這是不是在你的代碼中指定的上方。
  2. 儘量不要使用SELECT *。選擇實際的列名通常是更好的做法。在數據庫上工作稍微少一些,模式更改時不會輕鬆破壞等。
  3. 此比較區分大小寫。

UPDATE:校正,MySQL是不區分大小寫。因此,上述#3不應該成爲這種環境下的問題。

相關問題