質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
A5:SQL Mk-2

A5:SQL Mk-2は、フリーのSQL開発ツールです。高機能で軽量、且つ分かりやすいことを目指して開発されました。SQLの実行やテーブル編集などの機能に加え、簡単な操作によりDB定義書やER図を自動生成することも可能です。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

3回答

754閲覧

sql上でlimitの後に来る整数部分を切り捨てしたい

potato_salada

総合スコア7

A5:SQL Mk-2

A5:SQL Mk-2は、フリーのSQL開発ツールです。高機能で軽量、且つ分かりやすいことを目指して開発されました。SQLの実行やテーブル編集などの機能に加え、簡単な操作によりDB定義書やER図を自動生成することも可能です。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/08/05 09:11

select sample_id
from test_datebase
order by id
limit 30012

この時に取得するデータ個数を30000にしたいのですが、毎度毎度30000というわけでもないので数字部分に切り捨てをしてくれる関数?的なものをつけたいのですが、どうにかならないでしょうか

試したものとしては
limit truncate(30012,-2)
limit floor(30012,-2)
などを行いましたがエラーとなってしまいました。
言ってることが意味不明かもしれませんが、万が一理解できる方がいらっしゃれば解答をよろしくお願い致します

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2019/08/05 09:14

データベースによって SQL が違います。
Zuishin

2019/08/05 09:31

データベースじゃないですね。
potato_salada

2019/08/05 09:34

すみません、全くわからず… 解答いただきありがとうございました
Zuishin

2019/08/05 09:36

誰が設定したんですか?
potato_salada

2019/08/05 10:03

大学の授業で使っているデータで、デフォルトで設定されていた数値になります
Zuishin

2019/08/05 10:04

では、何のデータベースに接続しているのか、教授か友達に聞いてみてください。
potato_salada

2019/08/06 01:10

無事に解決することができました。 ありがとうございました!また何かわからないことがあった際は教えていただくことがあるかもしれないですがよろしくお願い致します
guest

回答3

0

ベストアンサー

** limit 30012**
この時に取得するデータ個数を30000にしたい

limit 30000と記述すれば良いと思うのですが?

追記

floor()を使用しているところからMySQLだと思いますが、そもそもMySQLのlimitは定数でないとエラーです。
13.2.9 SELECT 構文

LIMIT は 1 つまたは 2 つの数値引数を受け取ります。これは、どちらも負ではない整定数である必要があります。ただし、次の例外があります。

・準備済みステートメント内では、? プレースホルダマーカーを使用して LIMIT パラメータを指定できます。

・ストアドプログラム内では、整数値のルーチンパラメータまたはローカル変数を使用して LIMIT パラメータを指定できます。

例外も含めると、limitで指定するのは、定数変数という事になりますから、切り捨てを行うのはSQLの外でという事になります。

投稿2019/08/05 09:53

編集2019/08/06 00:49
sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

potato_salada

2019/08/05 10:02

それで今回は解決するのですがまた次の機会では50014や20001など毎度十の位まではランダムな数字が入るので、そこをnumberなどの変数に入れて切り捨てをできるようにしたいんですよね
sazi

2019/08/05 14:59 編集

その変数はどのようにして与えるのですか? 変数に設定する際に切り捨てすれば、別にSQL関数での切り捨てなどでなくとも良いと思えますが
sazi

2019/08/05 15:05

floor()を使用しているところからMySQLだと思いますが、そもそもMySQLのlimitは定数でないとエラーです。
potato_salada

2019/08/06 01:08

ありがとうございます、php上で切り捨て処理を行い、変数に入れ SQLでその変数をlimitで処理することで解決できました 本当にありがとうございました
guest

0

この手のソフト(SQLクライアント)にはSQLを保存、オープン、実行する機能は大抵付いているだろうから LIMIT 30000 って書いてよく使うSQLを保存すればいいのでは

投稿2019/08/05 17:31

mikkame

総合スコア5036

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

そもそも端数のついたわけのわからない数字がどこからどのように供給されるかわかりません。
limit句はスタティックに数値を与えないとエラーになるケースが多いので
明示的に30000(もしくは適当な数値)と指定するより有効で効果的な方法はありません

投稿2019/08/05 11:06

yambejp

総合スコア114843

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問