大家好,我认为这是一个蹩脚的问题,但我无法弄明白为什么?我有一个有三行的表,如下所示。
我用下面的代码查询它。但结果总是包含所有三行!它应该是id为3和4的行吗?
SELECT *
FROM `hs_room_slots_tbl`
WHERE 'from' >= '2016-12-07 10:00:00'
LIMIT 0 , 30
'from'字段是日期时间字段。我在phpmyadmin查询框中查询它。可能是什么问题?
答案 0 :(得分:2)
SELECT * FROM `hs_room_slots_tbl` WHERE `from` >= '2016-12-07 10:00:00'
您不会在列名称周围添加引号,因为否则会将其视为字符串
在这种情况下,您必须使用`from`,因为“from”是 mysql关键字。
答案 1 :(得分:1)
您的意思是使用backtique转义SELECT *
FROM `hs_room_slots_tbl`
WHERE `from` >= '2016-12-07 10:00:00'
LIMIT 0 , 30
列,而不是使用单引号引用它,如下所示。否则,它将被视为字符串文字而不是列名
#include<iostream>
using namespace std;
class CircularQueue{
int arr[10], front, rear, size;
const int max_size=sizeof(arr)/sizeof(int);
public:
CircularQueue(){ front = rear = size = 0; }
bool isEmpty(){ return front==rear; } // or simply size == 0
bool isFull(){ return (rear+1)%max_size == front; } // or simply size == max_size - 1
void enQueue(int val){
if( isFull() ){
cout << "Queue is Full" << endl;
return;
}
arr[rear] = val;
rear = (rear+1)%max_size;
size++;
}
int deQueue(){
if( isEmpty() ){
cout << "Queue is Empty" << endl;
return -1;
}
int ans = arr[front];
front = (front+1)%max_size;
size--;
return ans;
}
void display(){
if( isEmpty() ){
cout << "nothing to display" << endl;
return;
}
for( int i=0; i<size; i++ ){
cout<<"-----------"<<endl;
cout<<"ID is : "<<arr[(i+front)%max_size]<<endl;
cout<<"-----------"<<endl;
}
}
};
int main(){
CircularQueue ob;
bool break_loop=false;
while( !break_loop ){
cout << "1 Enqueue, 2 Dequeue, 3 Display 4 Quit \nOption = ";
int input; cin >> input;
int tmp;
switch(input){
case 1 :
cout << "Enter number " << endl;
cin >> tmp;
ob.enQueue(tmp);
break;
case 2 :
tmp = ob.deQueue();
if( tmp != -1 ) cout << "Element " << tmp << " deleted" <<endl;
break;
case 3 :
ob.display();
break;
case 4 :
break_loop = true;
break;
default :
break;
}
}
return 0;
}