0

我已经设置了一个 MySQL 数据库来获取课程的日期和时间,例如:

 class  |      class1      |      class2      |       class3       |
--------------------------------------------------------------------
physics | Tue@1@Mr. Foobar | Thu@4@Ms. Barfoo | Fri@1@Mr. Bobsmith |
math    | Mon@4@Ms. Foobar | Tue@3@Ms. Barfoo | Fri@2@Mr. Lala     |
cs      | Tue@2@Mr. Foobar | Fri@4@Ms. Barfoo |                    |

基本上,它是数据库中的数组格式值,我计划在需要时使用explode(),但我没有意识到我必须进行更细粒度的搜索。

数组格式为Day@Period@Teacher

例如,如果今天是星期二,你会如何建议我按顺序排列星期二的所有课程,例如:

Today's Classes
1. Physics
2. CS
3. Math

还是我应该放弃并分开class1进入class1day, class1period, class1teacher?

我最好的想法是这样的:

$date = $date("l");
mysql_query("
SELECT * 
FROM classes 
WHERE class1 OR class2 OR class3
LIKE '$date%' ORDER BY //(I have no clue what to order by)
");

干杯,非常感谢任何帮助!

4

1 回答 1

1

这可以使用以下查询来完成。

SELECT class 
FROM   table tbl1 
WHERE  Substring(class1, 1, 3) = 'Tue' 
        OR Substring(class2, 1, 3) = 'Tue' 
        OR Substring(class3, 1, 3) = 'Tue' 

但是你应该规范你的数据库。这将使搜索和减少数据冗余变得更容易。

于 2012-08-12T21:31:34.147 回答