我知道我对此非常了解,因为我早些时候已经获得了有关此主题的帮助,但是当它使相同的代码在网站的另一部分起作用时,看来我无法使其再次起作用。

我正在做的是尝试获取字符串的第一部分(在数据库中被-分隔符破坏了),因此数据库条目slugfoo-bar-rules,我需要从中获取foo字符串,其中slug不等于foo-bar-rules但等于phoo-bar-rulesfeuw-bar-rules。很抱歉,如果我的解释不是很有帮助,我很难将其解释给我自己:D。

预先感谢任何可以在这里帮助我的人..

<?php define ('PAGEPARENT', 'foo');
      define ('PAGECHILD', 'bar');
      define ('PAGEGRANDCHILD', 'rules');

    switch (PAGEGRANDCHILD) {
        case PAGEGRANDCHILD:
            $pageGrandChild = PAGEGRANDCHILD;
            $rangeRelationResult = mysql_query("SELECT DISTINCT SUBSTRING(slug, 1, INSTR(slug, '-') - 1) result
                                                FROM web_navbar_links
                                                WHERE SUBSTRING(slug FROM INSTR(slug, '-".PAGECHILD."-') + 1) = '$pageGrandChild'
                                                AND grandchild = 1
                                                AND slug != '".PAGEPARENT."-".PAGECHILD."-".PAGEGRANDCHILD."';
                                                ");
            while ($rangeRelationRow = mysql_fetch_object($rangeRelationResult)) { ?>
                <a href="?page=<?php echo $rangeRelationRow->result."-".PAGECHILD."-".PAGEGRANDCHILD; ?>&pageLevel=<?php echo $_GET['pageLevel']; ?>" title="<?php echo PAGEGRANDCHILD."&nbsp;for&nbsp;".$rangeRelationRow->result; ?>"><div id="<?php echo $rangeRelationRow->result; ?>Channel"><?php echo "&raquo;&nbsp;".ucwords(PAGECHILD)." for ".$rangeRelationRow->result; ?></div></a> <?php
            }
        break;
    }  ?>

最佳答案

我不确定是否能正确回答您的问题,但是LIKE是否可以选择?

SELECT .... WHERE slug LIKE "%-rules" AND slug != "foo-bar-rules"


将选择所有以-rules结尾的记录。

关于php - 使MySQL SUBSTRING正常工作的轻微问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3987636/

10-10 14:48