佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1266|回复: 18

Database query 疑问....

[复制链接]
发表于 26-9-2008 11:02 AM | 显示全部楼层 |阅读模式
我想问问....

SELECT * FROM phone WHERE ID='6';

ID 6 里面是有三个 results的...
就是属于 ID 6 有三个电话号码....

如果我这样select...
就会是..

ID       Phone
============
6         123456
6          654321
6         9821234

我想把它变成一条row出现这三个答案...
我该如何写那个query呢?
我试了很多次都不行....

Example:

ID   Phone1      Phone2           Phone3
================================
6    123456       654321          9821234

我想要这样的result....
回复

使用道具 举报


ADVERTISEMENT

发表于 26-9-2008 11:23 AM | 显示全部楼层
好像不能勒。。。
回复

使用道具 举报

发表于 26-9-2008 11:28 AM | 显示全部楼层
應該不行, 要配合programming啦
回复

使用道具 举报

 楼主| 发表于 26-9-2008 11:28 AM | 显示全部楼层
原帖由 d3ric3 于 26-9-2008 11:23 AM 发表
好像不能勒。。。


啊??
不可以啊??
我印象中是可以的...
只是不知道应该怎样写...
回复

使用道具 举报

发表于 26-9-2008 11:33 AM | 显示全部楼层
试下这个。如果可以得到你的要得格式让我知道。。。我猜的。。。
确保你的column 是 ID 和 Phone。

SELECT ID, Phone(0) As Phone1, Phone(1) As Phone2, Phone(2) As Phone3 FROM phone WHERE ID='6';
回复

使用道具 举报

发表于 26-9-2008 11:42 AM | 显示全部楼层
Phone() AS , 沒有這樣的function吧
回复

使用道具 举报

Follow Us
发表于 26-9-2008 11:46 AM | 显示全部楼层
我猜()应该可以是array吧。。。原来是不能的。。哈哈哈。。。sql query 应该不能拿到你要得答案。。。用sql拿到答案然后用programming排你要得格式
回复

使用道具 举报

 楼主| 发表于 26-9-2008 11:46 AM | 显示全部楼层
原帖由 d3ric3 于 26-9-2008 11:33 AM 发表
试下这个。如果可以得到你的要得格式让我知道。。。我猜的。。。
确保你的column 是 ID 和 Phone。

SELECT ID, Phone(0) As Phone1, Phone(1) As Phone2, Phone(2) As Phone3 FROM phone WHERE ID='6';


SELECT phoneID, phoneNo As phone1 FROM phone WHERE ID='6';

我试下testing 一个...
我这样的话就可以...

phoneID          phone1
====================
6                     123456

当我放 phoneNo(0)
就不行哦..
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 26-9-2008 11:52 AM | 显示全部楼层
原帖由 d3ric3 于 26-9-2008 11:46 AM 发表
我猜()应该可以是array吧。。。原来是不能的。。哈哈哈。。。sql query 应该不能拿到你要得答案。。。用sql拿到答案然后用programming排你要得格式


SQL query 没有的吗??

那惨咯....
有没有人会??
回复

使用道具 举报

发表于 26-9-2008 11:54 AM | 显示全部楼层
一个column是可以。。但是把原本的row换去column因该不能
回复

使用道具 举报

发表于 26-9-2008 11:56 AM | 显示全部楼层
SELECT phoneID, phoneNo As phone1 FROM phone WHERE ID='6';

应该会拿到

phoneID          phone1
====================
6                     123456
6                      654321
6                      9821234
回复

使用道具 举报

 楼主| 发表于 26-9-2008 11:59 AM | 显示全部楼层
原帖由 d3ric3 于 26-9-2008 11:56 AM 发表
SELECT phoneID, phoneNo As phone1 FROM phone WHERE ID='6';

应该会拿到

phoneID          phone1
====================
6                     123456
6                      654321
6                ...


是咯..
我就是得到这样的答案...
唉....

那我想问, 如果我要拿同一个 ID 的 第二行的data...
要怎样写?? 可以的吗??
因为现在ID 6 有三个data... 我要的是第二个而已.....
回复

使用道具 举报

发表于 26-9-2008 01:21 PM | 显示全部楼层
SELECT * FROM phone WHERE phoneID = 6 AND phoneNO = 654321;
回复

使用道具 举报

发表于 26-9-2008 02:41 PM | 显示全部楼层
请问下你的table有什么特征吗?? 如index...
回复

使用道具 举报

发表于 26-9-2008 03:07 PM | 显示全部楼层
你的要求不切实际。。。我猜测你是使用MySQL 的 command prompt来进行查询的吧?你的要求根本无法通过MySQL的 command prompt 来实现。使用select as 也不行,因为你根本无法预知你的query会搜寻到多少笔资料,你又如何知道你要多少个select as?再说select as 也不能把同一个column里的不同数值map去不同的column.

你只能通过其他的媒介,例如 php 之类的,查询了结果之后再使用 php 把结果根据你的要求显示出来。
回复

使用道具 举报

 楼主| 发表于 26-9-2008 03:21 PM | 显示全部楼层
原帖由 d3ric3 于 26-9-2008 01:21 PM 发表
SELECT * FROM phone WHERE phoneID = 6 AND phoneNO = 654321;


但是我是已经select三个出来...
然后才要第二个data....

现在我用着limit来叫第二个data出来....
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 26-9-2008 03:23 PM | 显示全部楼层
原帖由 geekman 于 26-9-2008 03:07 PM 发表
你的要求不切实际。。。我猜测你是使用MySQL 的 command prompt来进行查询的吧?你的要求根本无法通过MySQL的 command prompt 来实现。使用select as 也不行,因为你根本无法预知你的query会搜寻到多少笔资料,你又如 ...


你说得也对...
因为我想看看SQL 里面有没有这样的query.....
谢谢你....
回复

使用道具 举报

发表于 26-9-2008 04:23 PM | 显示全部楼层

回复 17# wcpon 的帖子

有,可是很长又乱....
例子:
select a.name1, a.name2, a.name3
from(select
(case
when b.no = '1' then
b.name
else
null
end) name1,
(case
when b.no = '2' then
b.name
else
null
end) name2,
(case
when b.no = '3' then
b.name
else
null
end) name3 from table b) a
回复

使用道具 举报

发表于 29-9-2008 12:52 AM | 显示全部楼层
select distinct id,
(select phone from phone where id=6  limit 0,1) as phone1,
(select phone from phone where id=6  limit 1,1) as phone2,
(select phone from phone where id=6  limit 2,1) as phone3
from phone where id=6
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 22-12-2025 11:24 PM , Processed in 0.140986 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表