| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+----------------+
| page_id | int(10) | NO | PRI | NULL | auto_increment |
| site | varchar(255) | YES | MUL | NULL | |
...
...
...
このようなテーブルがあり、以下の様なSELECT文を発行してもEmptyとなってしまいます。
> SELECT `page_id` FROM `table` WHERE `site` = 'hoge';
自分なりに色々と調べてみたところ、
> UPDATE `table` SET `site` = 'fuga' WHERE `page_id` = 1;
> SELECT `page_id` FROM `table` WHERE `site` = 'fuga';
とするとちゃんと1件返ってきます。
ですが、また
> UPDATE `table` SET `site` = 'hoge' WHERE `page_id` = 1;
> SELECT `page_id` FROM `table` WHERE `site` = 'hoge';
とするとEmptyとなってしまいます。
どうやら、INSERTしたレコードをWHERE `site` = 'hoge'するとEmptyとなるような気がします。
何度も試したので、単純に`site` = 'hoge'の文字列自体が間違っている、などのことは無いはずです。
以下の点も合わせて、どのような原因が考えられるでしょうか。
・レコードのINSERTは、クローラーによって行われていています。
・他のフィールドは通常通りSELECTすることができます。
・ストレージエンジンはmroongaです。
どなたか解決策がわかる方いらっしゃいましたら、ご回答頂ければ幸いです。
宜しくお願い致します。
No.3ベストアンサー
- 回答日時:
SELECT page_id, site, LENGTH(site), HEX(site)
FROM videos
WHERE site LIKE '%hoge';
の実行結果を念のため確認するとどうなるでしょう?
正しく'hoge'が格納されているなら,LENGTH()は4バイトになるでしょうし,HEX()表記は686f6765になるでしょう。
この回答への補足
site | LENGTH(site) | HEX(site)
fc2 | 3 | 666332
実際に格納されているデータはhogeでなくfc2ですのでLENGTHは3になりました。HEXは666332です。
No.4
- 回答日時:
mroongaエンジンを試す環境がないためなんともいえませんが
別のエンジンで試してみてはどうでしょう?
別のエンジンで問題ないなら場合によってはmroongaエンジンの
何らかの特性や制限の可能性もあるので、そちらの専門サイトで
仕様を確認してみてください
No.2
- 回答日時:
ためしに、識別子(テーブル名・フィールド名)を囲っているバッククォートを無しにするとどうなりますか?ようするに、識別子は何も囲わないということです。
これでうまくいくようなら、sql_mode制御変数あたりを調べてみる感じかなぁ
この回答への補足
回答ありがとうございます。
> SELECT page_id FROM videos WHERE site = 'hoge';
としてみましたが、やはりEmptyでした。
また、=ではなくLIKEを使用してみたところ
> site LIKE '%hoge';
> site LIKE '_oge';
この2つの方法で期待通りの結果が取得できました。
以下のようなクエリだとEmptyとなります。
> site LIKE 'hoge%';
> site LIKE '_hoge';
また引き続き宜しくお願い致します。
No.1
- 回答日時:
UPDATE `table` SET `site` = 'hoge' WHERE `page_id` = 1;
SELECT `page_id`,`site` FROM `table` WHERE `page_id` = 1';
を実行してみたら何かわかるんじゃない?
`page_id` = 1'の時に`site`に何が入っているか確認するのがまず最初だと思いますよ。
自分の期待する値のデータがセットされているかどうか確認するのが鉄則ですよ。
それでセットされていることが確認できたら
SELECT `page_id` FROM `table` WHERE `site` = 'hoge';
を実行してみたらどうですか?
調査はその後ですね。
後、COMMIT;を忘れているとか?さすがにそれは無いか?
この回答への補足
回答有り難うございます。
`page_id` = 1'の時に`site`に何が入っているか
ということですが、もちろんそれは把握済みですし、それが間違っているというイージーミスは考えにくいです。
>何度も試したので、単純に`site` = 'hoge'の文字列自体が間違っている、などのことは無いはずです。
なお、`site`には現在2種類の文字列しか入っていません。そのどちらもSELECTでEmptyが返ってきます。
ですが、UPDATEを行なって、UPDATE後の文字列をSELECTするとちゃんと1件返ってきます。
`site`に'hoge'を入れる
↓
`site`='hoge'でSELECT
↓
Empty
その'hoge'をUPDATEで'fuga'に変更
↓
`site`='fuga'でSELECT
↓
1件返ってくる
その'fuga'をUPDATEで再度'hoge'に戻す
↓
`site`='hoge'でSELECT
↓
やはりEmpty
という状態です。
引き続き宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 共通点はあります。何が違うのでしょうか? 1 2023/01/27 05:22
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- Oracle SQL update方法 2 2022/06/22 14:07
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
マイクラPC版のコマンドで効率...
-
副問合せの書き方について
-
クエリ表示と、ADOで抽出したレ...
-
VIEWの元のテーブルのindexって...
-
[MySQL] 3つのテーブルの結合で...
-
エラー 1068 (42000): 複数の主...
-
SQLサーバから、項目の属性(型...
-
エクセルの関数について教えて...
-
PL/SQLの変数について
-
SQL Left Join で重複を排除す...
-
WordpressのContact form 7でzi...
-
URL と行番号の指定
-
1テーブル&複数レコードの更新...
-
Postgreのupdateコマンドでエラー
-
テーブル名を省略して「h.id」...
-
Access パラメータクエリをcsv...
-
sqlで、600行あるテーブルを100...
-
WHERE id = ? について
-
存在しないレコードの抽出方法...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQL Left Join で重複を排除す...
-
SQLサーバから、項目の属性(型...
-
副問合せの書き方について
-
VIEWの元のテーブルのindexって...
-
エクセルの関数について教えて...
-
SQLにて特定の文字を除いた検索...
-
マイクラPC版のコマンドで効率...
-
select文のwhere句に配列を入れ...
-
sqlで、600行あるテーブルを100...
-
ある条件の最大値+1を初番する...
-
inner joinをすると数がおかし...
-
Unionした最後にGROUP BYを追加...
-
期間の重複を調べるSQL文につい...
-
クエリ表示と、ADOで抽出したレ...
-
Access パラメータクエリをcsv...
-
PL/SQLの変数について
-
MySQLのDATE型カラム値がNULLの...
-
php+mysqlで複数選択削除について
-
上位3位を求めるSQL文は?
おすすめ情報