- ベストアンサー
【MYSQL】asでリネームしてwhereで使う
こんな感じで↓ SELECT concat( `sation_name`, '駅' ) AS `sation_rename` FROM `table_name` WHERE `sation_rename` = `帷子ノ辻駅` カラム名をリネームした後、 そのカラム名をWHEREの中に組み込みたいのですが "そんなカラムは無い"とエラーになってしまいます。 as でリネームしたカラム名は WHEREで使うことはできないのでしょうか。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (4)
- 沙羅 聖児(@sara_seiji)
- ベストアンサー率25% (25/98)
- yambejp
- ベストアンサー率51% (3827/7415)
- 沙羅 聖児(@sara_seiji)
- ベストアンサー率25% (25/98)
- o_chi_chi
- ベストアンサー率45% (131/287)
関連するQ&A
- まったく別のテーブルの結果MYSQL
table_1 id name age table_2 id book title city day SELECT * FROM table_1 WHERE id=? SELECT book,title FROM table_2 WHERE city=? このようにまったく別のテーブル カラム数も違う WHEREの?も違う これを一つのSQL文にまとめたいのですが。 UNIONなどを使ってもうまくいきませんでした。 ご教授お願いいたします。
- ベストアンサー
- MySQL
- MySQLで検索されたフィールド
いつもお世話になっております。 MySQLで以下のようなSQL文を発行しています。 select * from table where (INSTR(`table`.`name`,'キーワード')<>0 OR INSTR(`table`.`keyword`,'キーワード')<>0) nameカラムとkeywordカラムのどちらのカラムから検索されたのか知りたいのですが どのようにしたらよろしいでしょうか。 (「キーワード」文字列がどちらのカラムに入っているのか知りたいです。) [環境] MySQL:5.5.16 よろしくご教示お願いいたします。
- ベストアンサー
- MySQL
- select文、asで定義した桁をwhereで使用可能?
SELECT ( IF(substring(p.TDATE,1,6) = '200407' ,p.PRICE,999999999) ) as 'MONTH1' from TBL_PRICE p where MONTH1<999999999 ; ↑こんな感じで使いたいのですが、これはエラーに なります(これをそのまんま使用するわけではないので、 このSQL自体へのツッコミはとりあえずいいです) >ERROR 1054: Unknown column 'MONTH1' in 'where clause' asで定義した桁をwhereで使用することはできますか?
- ベストアンサー
- MySQL
- inner joinとwhereでの結合の違いは?
お世話になります。 たとえば、テーブルが複数(この場合2つ)ある場合。 (1) test(カラム:table_id,table_name) (2) tester(カラム:table_id,table_name) 以下のクエリは条件的に select a.table_id, a.table_name from test a inner join tester b on a.table_id = b.table_id ************* select a.table_id, a.table_name from test a , tester b where a.table_id = b.table_id 同じですよね? パフォーマンス的にもjoinすることのメリットが判りません。
- 締切済み
- その他(データベース)
- ASでつけた名前はWHERE条件にできないのですか?
MySQL 4.0.26 人口 JINKO 面積 MENSEKI から 人口密度 JINKO/MITSUDO AS MITSUDO を計算し、これらをSELECTする際、 MISTUDOをWHERE条件に指定することはできないのでしょうか? 下記のSELECT文でエラーになってしまいます。 SELECT JINKO, MENSEKI, JINKO/MENSEKI AS MITSUDO FROM MYTABLE WHERE MISTDO > 20
- ベストアンサー
- MySQL
- My SQL の concat文について
あるテーブルtable01にname列があったとします。 その列に ”様" をつけたいと思い、concat文を使おうと思い、 以下のようにしたのですが、 mysql> Select concat(name,"様") from table01; +-------------------+ | concat(name,"様") | +-------------------+ | ito様 | | sato様 | | aikawa様 | | abe様 | | yamada様 | +-------------------+ 5 rows in set (0.00 sec) 列名もconcat(name,"様")となってしまっていますが、 As nameを使う以外に nameとだけ表示させる方法はありますか?
- ベストアンサー
- MySQL
- MySQL SELECT WHERE 条件 大量
mysqlのSELECT文でWHEREを使い条件を指定する時、指定する条件が数十件~数百件合った場合どうすればよいのでしょうか? 例えば、 以下のような感じで名前カラムと住所カラムがあったとします name address 田中 東京都 鈴木 大阪府 佐藤 北海道 加藤 沖縄県 中村 群馬県 小林 岐阜県 高橋 東京都 渡辺 大阪府 伊藤 北海道 山本 沖縄県 斎藤 群馬県 阿部 岐阜県 ・ ・ ・ そこで、東京都と大阪府と北海道の人だけをSELECT文で選択したいのですが、 WHERE `address` = '東京都' OR `address` = '大阪府' OR `address` = '北海道' というように、一つづつ記述していかなければならないのでしょうか? この例の場合だと3件だけの指定ですが、もしもっと膨大な量を指定したいとなったとき、とても効率が悪いように思います。 なにか良い方法はないのでしょうか? ちなみにPHPからMySQLを利用しているのですが、現在 $where = array(); foreach($address as $value){ $where[] = "`address` = '${value}'"; } $where = implode(' OR ', $where); としておいて、 mysql_query("SELECT * FROM table WHERE ${where}"); とする方法しか思いつきません。 もっとスマートな方法があれば教えて下さい。よろしくお願いします。
- ベストアンサー
- MySQL
- Oracle SQLの、where句内の条件文について教えてください。
Oracle SQLの、where句内の条件文について教えてください。 下記SQLの(1)と(2)の記述文を教えてください。 (1)例:owner = sys,admin ownerがsysまたは、adminを抽出 (2)例:column_name = '*aaa*' column_nameに「aaa」が含まれているデータ SELECT owner, table_name,column_name FROM all_tab_columns WHERE (1)(Ownerを複数指定) and (2)(column_nameに、●●が含まれるデータ)
- 締切済み
- Oracle
- from...where を from...join..on にするには
以下のSQL文は from ... where ... で書かれていますが これを from ... join ... on ... で書き直したいのですが可能でしょうか? select X.col1, U.col1 from TABLE_X as X ,TABLE_U as U where U.REC_NO = (select B.REC_NO from TABLE_A as A, TABLE_B as B where A.ITME = B.ITEM and X.DATA = A.DATA fetch first 1 row only ) むずかしくしているのは、fetch first 1 row only なのですが これがないと where句のかっこのなかのselect文は複数の結果を返します しかし、その複数の結果はすべて同じものになることがデータ上保証されています 。 fetch first を除いて select distinct としても同じ結果となりますが パフォーマンスがひどく低下してしまいます。
- ベストアンサー
- その他(データベース)
- where文について
2008-10-28のような形式でMYSQLに生年月日を登録しています。 フォームのセレクトボックスにて誕生月のみを取得しlike文では なくwhere文でデータの読み込みを行いたいのですがどうやれば できるのでしょうか? 通常だと "SELECT * FROM テーブル名 where カラム名 = '200-10-28' " でいけると思うのですが誕生月のみの情報で "SELECT * FROM テーブル名 where カラム名 = '10' " とやっても無理ですよね^^; $_POST['birth_month']で誕生月を取得し数字は01~12までです。 ※取得は問題なくできておりわからないのがwhere文の書き方です。 できるだけシンプルな方法で行いたいのですがお分かりになる方が おりましたら是非ご教授お願い致します!
- ベストアンサー
- PHP
お礼
回答ありがとうございます。 having句での記述を試してみます。