0

正しい結果を得るために比較する前に文字列を連結する必要がある場合に、このクエリを使用しようとしています。クエリは実行されていますが、結果が見つかりません。WHERE問題は、句の「myname」を比較しようとするときだと思います。これに対する正しいクエリは何ですか?

SELECT * 
FROM (SELECT CONCAT('tm_',name) AS myname FROM room) room, users
WHERE user_name = myname;
4

2 に答える 2

1

なぜだめですか

SELECT * FROM users,room where user_name=concat('tm_',name);

?

于 2012-09-26T13:03:31.527 に答える
0

代わりにこれを試してください

SELECT *
FROM 
(
   SELECT CONCAT('tm_',name) AS myname 
   FROM room
) t
WHERE user_name = myname

次のようJOINに他のテーブルが必要な場合があります。users

SELECT *
FROM 
(
   SELECT CONCAT('tm_',name) AS myname 
   FROM room
) t
INNER JOIN users u ON ... --some join condition
WHERE user_name = myname

または:

SELECT *
FROM 
(
   SELECT CONCAT('tm_',name) AS myname 
   FROM room
) t, users
WHERE t.user_name = myname"
于 2012-09-26T13:02:14.513 に答える