为了更清楚,如果我在MySql中有这些数据:
name | allowance | age
----------------------
khan | 50 | 20
aal | 60 | 22
hyme | 50 | 21
khan | 61 | 20
请注意,数据库中有两个“ khan ”具有不同的限额。我只想显示名称和年龄但是如果我使用mysqli select语句显示它,那么会有两个' khan '但我只想显示1' khan ”。我该怎么办?
答案 0 :(得分:1)
您需要使用GROUP_CONCAT查看所有可汗的消息;
select name, GROUP_CONCAT(age) ages from Table group by name
或最小年龄汗
select name , min(age) MiniumAge from Table group by name
或为年长的汗
select name , max(age) MaxAge from Table group by name
或任何汗
select name , age from Table group by name
答案 1 :(得分:0)
请尝试以下查询: -
SELECT name, age FROM table_name WHERE group by name
如果你想要多个相同的记录,那么只需逐个查询。
答案 2 :(得分:0)
我认为你可以这样做:
SELECT name, age FROM table_name WHERE group by name,age
答案 3 :(得分:0)
第一件事:如果这两个" khan" s是同一个人有两个不同的配额,那么你的架构没有正确规范化,以后会给你带来很大的麻烦 - 想象你想改变&#34 ;汗"到"汗" - 现在你必须在多个地方更新一次。根据您的实际需要,您可能需要一个人员表(person_id,姓名,年龄)和津贴表(person_id,allowance,[.. some some parameters?..])。
其次,要真正得到你想要的东西,要么你使用group by,要么得到一个"随机"如其他答案中所建议的每个名称的行,或者您可以
SELECT DISTINCT name, age FROM table;
每个名字 - 年龄组合会给你一行,所以khan-20只会在那里一次 - 但如果有khan-25则那可能是不同的人你会有两个khans返回,每个都有他们的自己的年龄。
答案 4 :(得分:0)
你可以尝试这个伴侣:
SELECT DISTINCT
name, age
FROM
<your_table>;
或者这个
SELECT
name, age
FROM
<your_table>
GROUP BY
name;
问:如果有2个相同名字的记录有年龄差异,是否有可能?如果是这样,请更新问题,以便给出更好的答案。干杯!