2009-05-29 32 views

答えて

5
SELECT COUNT(*) as count FROM users WHERE username='whatever' 

最初の結果行を読み出します。「カウント」列が> 0の場合、ユーザー名が存在します。

また、PHPで、あなたが使用できます。

SELECT * FROM users WHERE username='whatever' 

その後はmysql_num_rows(または同等品)を使用します。

+0

それとも、ただの最後を変更、スピードについて –

+0

選択とはmysql_num_rowsを使用することができます。username =「何でも」LIMIT 1 あなたはユニーク制約またはインデックスを持っていません念のユーザーからの SELECTのユーザー名 – Evert

0

これを行うストアドプロシージャを作成します。あなたのコードを介してSQLを実行するよりも速くなります。私はあなたのテーブルの保存されたデータと比較するだけでは何もできません。 ;-)

2
SELECT 1 FROM `users` WHERE `username` = 'whatever' LIMIT 1 
+0

どちらが速いのですか?この1つまたは受け入れられたソリューションですか? –

+0

適切に索引付けされた制約付きの表(ユーザー名の一意のキー)では、機能的に同一である必要があります。私の場合、インデックスのないテーブルや拘束されていないテーブルの方がうまくいくでしょう。 – chaos

3

ユーザがMySQLに存在するかどうかを判断しようとしている場合(つまり、MySQL自体にログインできるユーザ名が存在する場合)。

select user,host from mysql.user where user = 'username'; 

あなたがホストによってフィルタリングする必要がある場合:

select user,host from mysql.user where user = 'username' and host = 'localhost'; 

これらのクエリは、MySQLデータベースサーバーへのアクセス権を持つユーザーを見ることができますし、あなたがMySQLサーバの管理者である場合にのみアクセス可能です。

関連する問題