我正在尝试将B. DOLINCT B.INDEX_NAME与B.COLUMN_NAME一起带回来。这就是我使用该组的原因
然后对于返回的每一行,我需要A.DATA_TYPE
返回的A.DATA_TYPE不正确
选择 …
你的问题是由 GROUP BY 条款选择 DATA_TYPE 随机退出多个值,因为你的条件没有 JOIN 。您需要做的是通过向您的条件添加条件将每列名称的值数限制为1 JOIN :
GROUP BY
DATA_TYPE
JOIN
SELECT A.DATA_TYPE, B.INDEX_NAME, B.COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS AS A JOIN INFORMATION_SCHEMA.STATISTICS AS B ON A.TABLE_SCHEMA = B.TABLE_SCHEMA AND A.TABLE_NAME = B.TABLE_NAME AND A.COLUMN_NAME = B.COLUMN_NAME WHERE A.TABLE_SCHEMA= "mySchema" AND A.TABLE_NAME = "myTable"
在PHP中(使用MySQLI):
$sql = 'SELECT A.DATA_TYPE, B.INDEX_NAME, B.COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS AS A JOIN INFORMATION_SCHEMA.STATISTICS AS B ON A.TABLE_SCHEMA = B.TABLE_SCHEMA AND A.TABLE_NAME = B.TABLE_NAME AND A.COLUMN_NAME = B.COLUMN_NAME WHERE A.TABLE_SCHEMA= "mySchema" AND A.TABLE_NAME = "myTable"'; $result = mysqli_query($conn, $sql); echo mysqli_num_rows($result); while ($row = mysqli_fetch_assoc($result)) print_r($row);