在MySQL中创建更好的查询所需的指导

时间:2018-12-14 13:57:22

标签: mysql database mysql-workbench

我有一个包含数据的表,如下所示 enter image description here

我已经创建了此查询以返回结果

SELECT id,customer_name,job_number, 
IF(designer_name='des1',total_hrs, "") as des1,
IF(designer_name='des2',total_hrs, "") as des2,
IF(designer_name='des3',total_hrs, "") as des3,
IF(designer_name='des4',total_hrs, "") as des4 

FROM practice.test;

enter image description here

如果有50位设计师,那意味着我将不得不多次编写If语句,这不好。

我想知道是否有更好的方法来获得结果?

表格代码:

--
-- Database: `practice`
--

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

--
-- Table structure for table `test`
--

DROP TABLE IF EXISTS `test`;
CREATE TABLE IF NOT EXISTS `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `designer_id` int(11) NOT NULL,
  `designer_name` varchar(45) NOT NULL,
  `customer_name` varchar(45) NOT NULL,
  `job_number` varchar(45) NOT NULL,
  `total_hrs` varchar(45) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

--
-- Dumping data for table `test`
--

INSERT INTO `test` (`id`, `designer_id`, `designer_name`, `customer_name`, `job_number`, `total_hrs`) VALUES
(1, 1, 'des1', 'aa', 'j101', '11'),
(2, 1, 'des1', 'bb', 'j102', '8'),
(3, 2, 'des2', 'cc', 'j103', '2'),
(4, 2, 'des2', 'dd', 'j104', '2'),
(5, 2, 'des2', 'ee', 'j105', '5'),
(6, 3, 'des3', 'ff', 'j106', '13'),
(7, 3, 'des3', 'gg', 'j107', '32'),
(8, 3, 'des3', 'ii', 'j108', '4'),
(9, 3, 'des3', 'kk', 'j109', '3'),
(10, 3, 'des3', 'll', 'j110', '4'),
(11, 4, 'des4', 'mm', 'j111', '1'),
(12, 4, 'des4', 'nn', 'j112', '6');

2 个答案:

答案 0 :(得分:0)

您要达到的目标是什么?如果是总小时数,请尝试

//Method 1
document.querySelector(".se-pagination-button.se-pagination-button--next").click();

//Method 2
document.querySelector(".se-pagination-layout").lastElementChild.click();

答案 1 :(得分:0)

没有道理。我不认为您真正需要什么。 进行简单请求的问题是什么

SELECT id, customer_name, job_number, designer_name, total_hrs
FROM practice.test

您能解释一下,为什么需要这种方式的结果。可能是您的代码逻辑错误,将如何处理结果。