我有一个名为mem_exam_dates的mysql表名。
+---------+-------------+----------------------------------+
| rec_id | mem_name | exam_dates |
+---------+-------------+----------------------------------+
| 1 | Raju | 2015-01-05,2015-05-09,2018-05-09 |
| 2 | Rajes | 2015-10-05,2015-12-09,2018-09-09 |
+---------+-------------+----------------------------------+
现在我想显示如下结果。
+-------+---------------+
| Raju | Exam Dates |
+-------+---------------+
| 2015-01-05 |
| 2015-05-09 |
| 2018-05-09 |
+-----------------------+
我正在编写像
这样的查询从mem_exam_dates中选择*,其中rec_id = 1
从上面的查询我得到总考试日期为单个字符串。
但我希望考试日期如下。
+----------------+
| 2015-01-05 |
| 2015-05-09 |
| 2018-05-09 |
+----------------+
该查询是什么?
如果有人知道让我知道......
提前致谢
格利扬
答案 0 :(得分:1)
在MySQL中,您可以使用SUBSTRING_INDEX从字符串中提取部分。
所以你可以试试下面的SQL
SELECT SUBSTRING_INDEX(exam_dates, ',', 1) as first
, SUBSTRING_INDEX(SUBSTRING_INDEX(exam_dates, ',', 1), ',', -1) as second
, SUBSTRING_INDEX(exam_dates, ',', -1) as third
在.NET中,您可以使用split()
https://msdn.microsoft.com/de-de/library/b873y76a%28v=VS.110%29.aspx
如果您在名为exam_dates的变量中有列,则可以使用:
string [] dates = exam_dates.Split(new Char [] {','});
所以你有一个所有日期的数组。
答案 1 :(得分:0)
您需要使用服务器端语言处理数据。如果您使用的是PHP,则可以使用explode。
例如:
$dates= explode(",", $longdatestring);
echo $dates[0]; // date1
echo $dates[1]; // date2
要查找返回的日期数,只需计算数组中的元素。
$numberofdates = count($dates);
或者查看数组,直到元素耗尽。
foreach ($dates as $date) {
echo $date;
}
有关PHP的更多详细信息: https://secure.php.net/manual/en/function.explode.php