• 締切済み

末尾がスラッシュでないデータを抜き出すSQL文

テーブルphonelistのsiteurlフィールドにURLが多数入っています。 URLの末尾はhttp://xxx.com/などとスラッシュで終わることを前提としていますが、データのいくつかはhttp://xxx.comなどとスラッシュで終わらないものがあるようです。 現在、このテーブルのデータを基にPHPを動作させたのですが、スラッシュで終わらないもののみ正常に動作しなかったようです。 もう一度プログラムを動かすために、末尾がスラッシュで終わらないデータのみ抜き出したいですが、自分ではうまくいきません。 SELECT * FROM phonelist WHERE NOT siteurl LIKE "*\/$"; みたいに、私も上のようなSQLをいろいろと試しましたが、どうやってもsiteurlの登録データのすべてが検出されてしまいます。 どなたか末尾がスラッシュではないURLのみを抜き出すSQL文を教えてください。 よろしくお願いします。

  • MySQL
  • 回答数1
  • ありがとう数1

みんなの回答

回答No.1

「 NOT LIKE 」を使用してこうしたらどうでしょうか。 SELECT * FROM phonelist WHERE NOT siteurl NOT LIKE '%/';

crouch-tancle
質問者

お礼

ありがとうございます。無事に抽出できました

関連するQ&A

  • SQL ?で終わる

    アクセスのSQL文で、テーブルのフィールドの値が、最後が?で終わるものを抽出したいのですが SELECT テーブル.フィールド FROM テーブル WHERE (((テーブル.フィールド) Like "[*?]")); これだと1件も抽出されません。 Like "[*?]"が間違ってると思うのですが、どうすればいいでしょうか?

  • 2回実行のSQL文を1回にしたい

    テーブルXXXがありますその中の各フィールドは以下の通りです。 フィールド A フィールド B フィールド C まずA=0の検索をしてBの値を取り出し、新たにB=取り出した値で 検索をしたいのですがSQL文が1つにできないでしょうか? 今現在、 SELECT * FROM XXX WHERE A=0 を実行してBの値を変数Dに入れ SELECT * FROM XXX WHERE B=D と実行して全てのCの値を取り出しています よろしくお願いします。

  • SQLの条件文

    以下のデータで、dataで始まり、かつ数値部分を100~300の範囲で抽出したいと考えています。 テーブル名はtable1、フィールド名はretuです。 -retu- data023 unknowndata data105 data203 data827 SELECT retu FROM table1 WHERE retu LIKE 'data%' AND CAST(RIGHT(retu,3) AS Int) BETWEEN 100 AND 300 上記のSQLを作ってみたのですが、これだとunknowndataに対してCASTが行われてしまうらしく、CASTが失敗してデータを取り出すことができませんでした。 正しくデータを取り出すためには、どのように記述すれば良いでしょうか?

  • SQLで取得したフィールドをSQL文として利用

    お世話になっております。 MYSQLで sql_id (int PK) sql_data (text) のようなテーブル(sql_db)を持ち select sql_id from where (sql_data をsqlとして実行した結果 ) > 200 のように、フィールドから取得した値をSQLとして実行したりする方法はございますでしょうか。 ご教授よろしくお願いいたします。

  • SQL文 この部分はなんていうのでしょう?

    SELECT T_テーブル1.フィールド1 FROM T_テーブル1 ORDER BY T_テーブル1.フィールド1; なら、 ”ORDER BY句” SELECT T_テーブル1.フィールド1 FROM T_テーブル1 WHERE (((T_テーブル1.フィールド1)="A")); なら ”WHERE句” と言いますが、 DELETE Table1.* FROM Table1; や UPDATE テーブル1 Set テーブル1.フィールド1 = "い" WHERE (((テーブル1.フィールド1)=”あ")); や DROP Table Table1; の deleteやupdateやdropの部分は何て言うのでしょうか? そのまま、SELECT句DELETE句などというのでしょうか?

  • 正規表現での最後尾のバックスラッシュの扱いについて

    使用しているSQLテーブルで、フィールド名siteurlに格納しているURLの最後尾にスラッシュがついているものとついていないものがあるので、つけるように統一しようと思います。 PHPを書き、実行したところ、次のようなエラーが出てきました。 Warning: preg_match() [function.preg-match]: No ending delimiter '/' found in C:\xampp\htdocs\sql_open.php on line 42 この部分のコードは次の通りです。 if(!preg_match("\/$",$row["siteurl"])){ //行末がスラッシュでないならスラッシュを追加する $row["siteurl"].="/"; } エラーの内容を考えて、コードを以下のように修正したところ、 if(!preg_match("\/$",$row["siteurl"])){ //行末がスラッシュでないならスラッシュを追加する $row["siteurl"].="/"; } というエラーが出てきます。 preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash in C:\xampp\htdocs\sql_open.php on line 42 正規表現はあまり得意ではなく、どこかしら間違いがあったのかもしれませんが自分ではわかりません。 この問題の解決方法をご教示ください。どなたかご教示のほど、どうかよろしくお願いします。

    • ベストアンサー
    • PHP
  • SQL文でのデータの取得が上手くいきません

    初めて質問させていただきます。 こちらのカテゴリで良いのか分からなかったのですが、よろしくお願いいたします。 SQL文を作成しているのですが、上手くいかず困っている状況です。 要件としてはテーブルAにユーザーの情報が格納されているのですが、 キーの一つとして世代(SEDAI_NO)(日付)を持っております。 今回取り出したいデータは該当ユーザーの処理日以前の最新のデータを 取得したいと思い以下のSQL文を作成しましたが、上手く行かず、最新世代を含むそれ以前の世代のデータを取得してきています。 どこがおかしいのでしょうか? よろしくお願いいたします。 【作成したSQL】 select * from テーブルA テーブルA’ where (USER_ID=該当のユーザーID) and (SEDAI_NO = (select max(SEDAI_NO) from テーブルA where SEDAI_NO = テーブルA’.SEDAI_NO AND 処理日 >= テーブルA'.SEDAI_NO)

  • データベースのワイルドカードは%ではないの?

    アクセスのテーブルに あ い う があり、 SQL文で *********************************************** SELECT テーブル1.フィールド FROM テーブル1 WHERE (((テーブル1.フィールド) Like "%あ%")); *********************************************** としてもエラーにならないけど、「あ」が抽出されません。 *********************************************** SELECT テーブル1.フィールド FROM テーブル1 WHERE (((テーブル1.フィールド) Like "*あ*")); *********************************************** にすると、「あ」が抽出されます。 アクセスなどのデータベースのワイルドカードは%だと思っていたのですが違うのですか?

  • ACCESSのSQLビューの編集で

    select field1 from table1 where field1 like "x%"; のように%や_が使えないのですが使えるようにするにはどうしたらいいのでしょうか?

  • SQLの書き方について教えてください。

    SQL Server2000で下記のようなSQL文を書きたいと思っています。 テーブルAとテーブルAに無関係な2個のフィールドを 持つテーブルBがあり、テーブルAのデータをテーブルBにコピー したいと考えています。その際にテーブルBの2個のフィールドに対して 決められた値を挿入したいのですがどのように記述すればよいのか わかりません。 お分かりの方お教えいただけませんでしょうか よろしくお願いいたします。 下記の記述をしています。 INSERT INTO テーブルB ( A, B, C, D ) SELECT テーブルA.A, テーブルA.A, XXX1, XXX2 FROM reserveSETdateTRN; Cに東京 Dに品川 を入れたいと思っています