Heim > Backend-Entwicklung > PHP-Tutorial > Mysql 这么可以一句sql出来吗

Mysql 这么可以一句sql出来吗

WBOY
Freigeben: 2016-06-13 12:54:25
Original
794 Leute haben es durchsucht

Mysql 这样可以一句sql出来吗
-- phpMyAdmin SQL Dump
-- version 2.10.2
-- http://www.phpmyadmin.net
-- 
-- 主机: localhost
-- 生成日期: 2013 年 01 月 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,
  `welcome` tinyint(3) unsigned NOT NULL,
  PRIMARY KEY  (`location_id`)
) ENGINE=MyISAM DEFAULT 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);



排序要求:
如果 welcome 为1   则按score + 50  来排
例查询两条数据   按  score DESC   
结果为
location_id为1000和1002的两条数据

求助  感谢 !

mysql
------解决方案--------------------
引用:
引用:表述的不清楚!
是不是要把 welcome 为1 的排在前面?

select * from location order by welcome=1 desc, score DESC

版主  是这样的 
我想将 welcome=1的 score + 50,再按score倒序来排。前提是不改变原表的值。

这样写
select location_id, if(welcome=1,score+50,score) as score, welcome from location order by score DESC


Array
(
    [0] => Array
        (
            [location_id] => 1000
            [score] => 100
            [welcome] => 1
        )

    [1] => Array
        (
            [location_id] => 1002
            [score] => 80
            [welcome] => 1
        )

    [2] => Array
        (
            [location_id] => 1001
            [score] => 60
            [welcome] => 0
        )

    [3] => Array
        (
            [location_id] => 1003
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage