dポイントプレゼントキャンペーン実施中!

私は今不動産会社のweb制作担当で働いています。
web制作といっても、元々私はデザイナーなので
ホームページを作ることしかできず、
物件検索などphpやsqlが必要なページは
ほかの会社のSEさんが作ったものを使っています。

今回、物件検索の形を変えることになり、
ほかの会社のSEさんに相談したところ、
ヒントはくれるのですが、すべて任せて直していただくと
お金が発生するので、私の力で修正したいと思い。。。

修正内容は今一緒になってるデータを
id10、id20、id30、id40、id50でわけたいのですが。

SEさん曰く↓この文のWHERE recommend = '1' のあとに
andでidをひっつけるだけといわれたのですが
いろいろ試すんですが、うまくいきません。
$e['sql'] = "SELECT SQL_CALC_FOUND_ROWS a.id, a.kind, a.name, " .
"a.address, a.price, a.area, a.room, a.ldk, a.parking " .
"FROM hc_article AS a WHERE recommend = '1' " .
"ORDER BY price ASC LIMIT {$e['limit']} OFFSET {$e['offset']};";

単純にWHERE recommend = '1' and 'id10'のように
していけばいいのでしょうか???

すみません。無知なもので、
うまく説明ができているかどうか・・・

A 回答 (3件)

補足。

(大雑把に説明してるので厳密には違う部分もあることは頭に入れてください)
かえって混乱するようであれば無視してください。

SQLでの「and」というのは
「andの左右両方の条件式が成り立つときに『条件成立』とする」
という意味があります。
なので、
1=0 and 1=1
 は、「成り立たない」and「成り立つ」なので、条件は成り立たず、
0=0 and 1=1
 で、「成り立つ」and「成り立つ」なので、ここで初めて条件は成立します。

だから、
1 = a and b
 というのは、andの右側が条件式になっていないのでエラーになります。
    • good
    • 0

↓この1行を追加すればOKです。


and id = 'id10'

見やすくするとこんな感じです。
============================
SELECT
 SQL_CALC_FOUND_ROWS a.id,
 a.kind,
 a.name,
 a.address,
 a.price,
 a.area,
 a.room,
 a.ldk,
 a.parking
FROM
 hc_article AS a
WHERE
 recommend = '1' AND
 id = 'id10'
ORDER BY price ASC LIMIT {$e['limit']} OFFSET {$e['offset']};
============================
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございます。

まだうまくできてないのですが
少し前進してできそうなかんじです!

ありがとうございます!!

お礼日時:2009/11/06 17:44

ここは SQL Server のカテゴリですが、使っている関数を見ると MySQL ではないのでしょうか?



>修正内容は今一緒になってるデータを
>id10、id20、id30、id40、id50でわけたいのですが

表の列構成、母体データ、得たい結果などを具体的に説明してくれないと、誰も具体的なアドバイスはできません。

この回答への補足

ご指摘ありがとうございます。
すみません、質問の仕方さえよくわからないぐらい
無知でして。。。

なんとか、調べてやってみたいと思ってますが
なかなか難しいですね。。。

補足日時:2009/11/06 17:41
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!