0
$query = mysql_query(SELECT * FROM test WHERE SUBSTRING(date,0,4)="1392") //for example 1392
echo query['name'];

最初の4文字を取得し、1392と等しいかどうかを確認したいと思います。しかし、その戻り値1054私の列名タイプはvarcharであり、これについてはわかりません。

4

3 に答える 3

2

MySQLは、phpとして0からではなく、1からcharをカウントします。試す

SUBSTRING(date,1,4)="1392"

またはあなたが年が欲しいなら

YEAR(date)="1392"

http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_substring

テスト例の編集

CREATE TABLE babak (name VARCHAR(20) NOT NULL, date VARCHAR(10) NOT NULL);
INSERT INTO babak SELECT 'test', '1391/11/11';
INSERT INTO babak SELECT 'correct', '1932/11/11';

SELECT * FROM babak WHERE YEAR(date) = 1932;
+---------+------------+
| name    | date       |
+---------+------------+
| correct | 1932/11/11 |
+---------+------------+

SELECT * FROM babak WHERE SUBSTRING(date, 1, 4) = 1932;
+---------+------------+
| name    | date       |
+---------+------------+
| correct | 1932/11/11 |
+---------+------------+
于 2012-07-07T09:46:05.073 に答える
1

だからあなたの日付はvarcharフォーマットyyyy/MM/ddである、これを試してみてください:

SELECT   *
  FROM   test 
 WHERE   SUBSTRING(`date`,1,4) = '1932'

デモはこちらをクリックしてください

于 2012-07-07T10:04:00.233 に答える
0

mysql_queryはリソースのみを返します。結果をフェッチするには、そのリソースを使用する必要があります

$resource = mysql_query('SELECT * FROM test WHERE SUBSTRING(date,1,4)="1392"')
$result = mysql_fetch_assoc($resource);
echo $result['name'];
于 2012-07-07T10:00:39.113 に答える