ホームページ >バックエンド開発 >PHPチュートリアル >Mysql、SQLを一文で書けますか?

Mysql、SQLを一文で書けますか?

WBOY
WBOYオリジナル
2016-06-13 12:54:25782ブラウズ

Mysql SQL を 1 つの文で理解できますか?
-- phpMyAdmin SQL ダンプ
-- バージョン 2.10.2
-- http://www.phpmyadmin.net
--
-- ホスト: ローカルホスト
-- 作成日: 2013 年 1 月 25 日 06:32
-- サーバーバージョン: 5.0.45
-- PHP バージョン: 5.2.3

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- データベース: `test`
--

------------------------

--
-- テーブル構造 `location`
--

CREATE TABLE `location` (
`location_id` int(10) unsigned NOT NULL,
`score` int(10) unsigned NOT NULL,
`ようこそ` tinyint(3) unsigned NOT NULL,
主キー (`location_id`)
) ENGINE=MyISAM デフォルト CHARSET=gbk;

--
-- テーブル `location`
内のデータをエクスポートします。 --

INSERT INTO `location` VALUES (1000, 50, 1);
INSERT INTO `location` VALUES (1001, 60, 0);
INSERT INTO `location` VALUES (1002, 30, 1);
INSERT INTO `location` VALUES (1003, 20, 0);



並べ替え要件:
ウェルカムが1の場合、スコア50でランク付けされます
2 つのデータをクエリする例 スコア DESC
を押します 結果は
です location_id 1000 と 1002 の 2 つのデータ

助けてください、ありがとう!

mysql
-----解決策---------
引用:
引用: 表現が明確ではありません!
歓迎値が 1 のものを最初にランク付けする必要がありますか?

select * from location order by welcome=1 desc、スコア DESC

モデレーターはこんな感じです
welcome=1のスコアを50まで設定し、スコアの降順にソートしたいと考えています。元のテーブルの値は変更されないことが前提となります。

このように書きます
location_id、if(welcome=1,score 50,score) をスコアとして選択、ロケーションからスコア順にようこそ DESC


配列
(
[0] => 配列
(
[location_id] => [スコア] =>                                                                                                                                                                                                                        ​ )

[1] => 配列
(
[場所 ID] => 1002
[スコア] => [ようこそ] = & gt; 1
)

[2] => 配列
(
[場所 ID] => 1001
[スコア] => [ようこそ] => )

[3] => 配列
(
[場所 ID] => 1003

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。