数据库中具有相同值的列名称

时间:2016-02-01 06:35:22

标签: php mysql sql

我正在制作一个程序来增加商店的数量,这些商店有自己的营业时间和营业时间(不同日期可能会有所不同)

我存储开始和结束时间的数据库结构为

enter image description here

所以当我从这个表中获取数据时,我希望对具有相同值的列名进行分组..

对于第一个商店输出应该是

monday, tuesday, wednesday, thrusday, friday, saturday, sunday => 10:00-am to 8:00-pm

最后的商店输出应为

monday, tuesday, wednesday, friday, saturday => 10:00-am to 8:00-pm

thrusday => 9:30-am to 5:00-pm

sunday => 10:00-am to 4:30-pm

所以我如何编写查询来获取这样的记录..

谢谢,

2 个答案:

答案 0 :(得分:0)

这可能会对你有帮助。

$array =来自数据库并从现在开始处理其输入。

$standardTime =保存商店默认开始和结束时间的数组。

我不确定如何通过SQL或查询直接实现这一点,但是,我在这里尝试使用PHP脚本。希望这会对你有所帮助。

    $array =  array(
      'monday' => "10:30-am to 08:00-pm",
      'tuesday' => "10:30-am to 08:00-pm",
      'wedensday' => "10:30-am to 08:00-pm",
      'thursday' => "09:30-am to 05:00-pm",
      'friday' => "10:30-am to 08:00-pm",
      'saturday' => "10:30-am to 08:00-pm",
      'sunday' => "10:00-am to 04:30-pm",
    );

    $standardTime = array("10:30-am to 08:00-pm","10:30-am to 08:00-pm","10:30-am to 08:00-pm","10:30-am to 08:00-pm","10:30-am to 08:00-pm","10:30-am to 08:00-pm","10:30-am to 08:00-pm");
    $diff = array_diff($array,$standardTime);
    $daysWithDiffTimmings = '';
    if(is_array($diff) && count($diff) > 0) {
        $daysThatHaveDiffTime = array_keys($diff);
        foreach($daysThatHaveDiffTime as $day) {
            $daysWithDiffTimmings.= $day.' = '.$diff[$day]."<br/>";
            unset($array[$day]);
       }
     }

    $remainingDaysWithSameTime = array_keys($array);
    $daysWithSameTime =  implode(",", $remainingDaysWithSameTime);
    $daysWithSameTime .= ' = 10:30-am to 08:00-pm<br/>';

    echo $daysWithSameTime;
    echo $daysWithDiffTimmings;

这将输出为:

monday,tuesday,wedensday,friday,saturday = 10:30-am to 08:00-pm
thursday = 09:30-am to 05:00-pm
sunday = 10:00-am to 04:30-pm

答案 1 :(得分:0)

试试这个:

$question = array(
        'monday' => '10:00-am to 8:00-pm',
        'tuesday' => '10:00-am to 8:00-pm',
        'wednesday' => '10:00-am to 8:00-pm',
        'thrusday' => '9:30-am to 5:00-pm',
        'friday' => '10:00-am to 8:00-pm',
        'saturday' => '10:00-am to 8:00-pm',
        'sunday' => '10:00-am to 4:30-pm',
    );
$result = array();
foreach ($question as $key => $value) {
    if(isset($result[$value]))
        $result[$value] .= ', '.$key;
    else
        $result[$value] = $key;
}
echo "<pre>".print_r(array_flip($result),1)."</pre>";

输出:

Array
(
    [monday, tuesday, wednesday, friday, saturday] => 10:00-am to 8:00-pm
    [thrusday] => 9:30-am to 5:00-pm
    [sunday] => 10:00-am to 4:30-pm
)